Powershell批量修改AD账户登陆到的计算机

Powershell 批量修改AD账户登陆到的计算机

上个月有个项目中碰到这样一个需求,讲述步骤前先描述下客户的实际情况:因安全考虑需要,域内的计算机之前都已经设置了指定登陆到的计算机,目前的项目是从Lotus邮件系统迁移到Exchange 2010,Lotus工作流迁移到泛微OA,域内账户输入账号和密码后不能登陆到Exchange系统。原因就是设置了账户的登陆到计算机属性,因为Exchange是新上的系统,没在指定范围内,所以需要添加Exchange服务器CAS01,CAS02,Mail,Mailbox01。添加Mailbox01是因为公共文件夹数据库在Mailbox01上,winxp客户端需要连接到Mailbox01下载和更新OAB。

和用户确定范围和工作内容后,就开始着手做了,用户说他有之前保存的批量导入脚本,我说好啊,你来处理吧,结果一个上午过去了,到中午的时候,还没弄完,我一看,脚本比较复杂,针对OU要修改,有些属性要调整,一个小时大概能处理500个,照这个进度,下午可能也处理不完。

分析后思路来了,先从AD导出现有的Logonworkstation属性到Excel,在Excel里面批量修改下Logonworkstation属性,在导入到AD就可以了,这样高效而且故障率低。

下面开始讲述详细的实施步骤。

步骤1、Powershell批量导出AD的相关属性。如果是系统是2008,则需要使用 Import-Moudle ActiveDirectory 倒入AD模块先,但在2012中会自动导入。

PS C:\Users\Administrator> Get-ADUser -Filter * -Properties * | Select-Object name,samaccountname,userprincipalname,logo
nw*|Export-Csv c:\userinfo.csv -Encoding UTF8 -NoTypeInformation

步骤2、导出后,删除一些系统自带账号,如下图。

步骤3、下面我们增加五列内容,一列是从Logonworkstation剪切过来的,一些是cas01,一列是cas02,一列是mail,一列是mailbox01。用于后面的步骤"列合并"。为什么Logonworkstation列留空呢?看后面步骤就知道了。

步骤4、我们使用Excel字符合并函数,A&B&C&D&E,如下图,得到我们想要的xp002,cas01,cas02,mail,mailbox01这个效果,并拉至填充至最末尾一行。

步骤5、编辑完成后,注意用记事本打开该文件,然后选择“UTF-8”编码来保存该CSV文件,以免出现导入后出现中文字段乱码.

步骤6、将编辑后的CSV文件复制到C:\ ,执行导入命令

PS C:\Users\Administrator> Import-Csv -Path c:\userinfo.csv | foreach {Set-ADUser -Identity $_.name -LogonWorkstations $
_.logonworkstations}

步骤7、查看我们导入后的效果,对比下Excel表,看是否达到了我们的要求。

步骤8、操作后整个导入的时间不到半小时。达到我们的实际效果,步骤完成。

时间: 2024-10-17 18:11:55

Powershell批量修改AD账户登陆到的计算机的相关文章

PowerShell批量修改AD用户密码属性

需求:非常普通的一个需求,就是给AD用户修改密码,但是问题是量太大了.所以写了个脚本 cls $pass = ConvertTo-SecureString -AsPlainText 12333333344.abc -Force Import-Csv -Path d:\pp.csv | foreach {  Get-ADUser -Identity $_.name|Set-ADAccountPassword -Reset -NewPassword $pass Get-ADUser -Identit

Powershell 批量导入AD账户

它是一个单独的命令行,即导入一个 CSV 文件并使用其中的信息创建数十甚至数百个新的 Active Directory 用户: Import-CSV 'C:\provision1.csv'|ForEach-Object {New-QADUser -organizationalUnit 'company.pri/Singers' -name($_.'First Name' + '.' + $_.'Last Name') -samAccountName $_.'Logon name' -city$_

一个批量修改AD信息的小脚本

今天接到一个任务,一个子公司100来个USER的账号,更换了新的电话号码,另顺便需要在AD里面体现出 各USER的职位. 好吧,100多个人,如果手动来改,量也很大,首先想到的是用脚本来修改,刚好想到了powershell. 首先,准备一个CSV文件,把USER按如下格式排练好,各值之间用逗号隔开,之后命名test.csv文件 samaccountname,telephonenumber,title user1,1234567,engineer user2,2345678,sales ...,.

使用powershell批量修改文本为utf8

根据上一篇powershell生成pro的方法,增加一个批量修改文本文件为utf8格式的方法 $incPath = dir -filter "*.c" -Recurse $temp = " " foreach($fpath in $incPath) { $headList=$fpath.DirectoryName + "\" + $fpath.name $temp = cat $headList $temp | Out-File -Encodin

批量修改AD用户属性

首先使用csvde导出需要修改用户的DN 再准备一个包含用户信息的Excel表.整理能如下格式,这里示范批量修改用户的邮件地址,红色部分改成自己需要的,还要修改其它信息,可以在后面直接加,对应的参数见链接https://technet.microsoft.com/en-us/library/cc732954.aspx , 将此文本文件保存为.bat,最后在服务器上运行. dsmod user CN=admin01ou01,OU=Users,OU=OU01,DC=adtest01,DC=com -

批量修改AD用户属性python脚本

主要是用python调用dsquery查询到dn,再用python调用dsmod进行dn的属性修改. namelist.txt格式如下,部门的字段其实可以换成相应想修改的AD属性,比如AD中title是表示职位,想要修改工号-职务,就将dsmod语句改成如下(具体dsmod user的参数查 dsmod user /?可以看到.) "dsmod user " + dn + " -title " + dep |---------------| |sAMAccount,

Powershell批量新建AD域账号

新建前准备(新建完成公司的OU,部门,附新建命令): New-ADGroup -Name ... New-ADGroup -Name ... -Path "..." Powershell模板属性 No,Account,Name,Company,SecondaryDepartment,TertiaryDepartment,EnglishName,Displayname,Surname,Givenname,OfficePhone,Mobile,Mail,Position 注意:CSV文件需

powershell批量修改aduser的displayname属性

情景.需求: 随着目前公司规模的不断扩大,原先仅已中文名字为aduser中displayname属性值的现象,已经对在和国外人员交流产生影响.导致国外人员无法辨识aduser的displayname信息.我们知道无论Exchange还是SFB,它们的显示名取得是displayname值. 首先export-csv -path | get-aduser 导出并修改信息,保留需要的列. $file = import-csv c:\users\administrator\desktop\alluser

使用PowerShell 批量修改O365 用户UPN

又来分享一些日常用的小脚本哈,比如说有些小型企业在使用O365时开始用的是O365自带的域名,过了一段时间后想用自己的域名了,这时候管理员就需要将用户的UPN修改成自定义域名.总体来说这不是个复杂的活,简单写的话可能几行代码就搞定了,当然如果想写的稍微规范些,那么可以再加上一些逻辑控制类的语句 param ( [parameter(Mandatory = $true)] [string]$CustomDomainName, [parameter(Mandatory = $false)] [boo