1.实施的前提请准备好相关"/>

PowerShell 批量添加域用户(Windows 2012 R2)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PowerShell 批量添加域用户(Windows 2012 R2)相关的知识,希望对你有一定的参考价值。

 

PowerShell版本


技术分享

 

1. 实施的前提请准备好相关域用户信息,一般都是Excel表,格式如下


技术分享


注:为了方便导入,我将PowerShell相关名与表格中值一一对应。

   Group组织单元需要提前建立出来,也可以用PowerShell命令

   技术分享

   用户密码我是用函数来做的,数字+字母最好,但是有些字母数字,如数字0和小写字母o和大写字母O,给用户及运维工作人员带来不便,固我采用了随机数字+固定字母来做。

2. 将表格另存为后缀名.CSV格式文件(该文件会以逗号形式隔开每个字符串值),若表中有中文,需要我们将.CSV文件以文本方式打开,并以UTF-8编码格式另存或覆盖该文件。


技术分享


3. 用户excel表准备工作完毕,接下来,使用PowerShell命令批量导入用户信息(若是在生产环境或实施环境,请在测试机上测试可行后再导入,建议之前做一些备份工作)

登陆ad域控制器,用PowerShell命令以管理员身份执行

Import-Csv ‘C:\UserData\ADUserData.csv‘ | ForEach-Object {New-ADUser -SamAccountName $_.SamAccountName -Surname $_.Surname -GivenName$_.GivenName -Name $_.Name -UserPrincipalName $_.UserPrincipalName -DisplayName$_.Name -Description $_.Name -Path $_.Path -AccountPassword(ConvertTo-SecureString -AsPlainText $_.AccountPassword -Force) -Enabled 1-ChangePasswordAtLogon 1 }


技术分享

 

技术分享


注:

‘C:\UserData\ADUserData.csv‘为导入.CSV文件路径,New-ADUser为添加新用户命令,-SamAccountName$_.SamAccountName 为“- 类型 $_.数据值” -Enabled 1 是启用账户,-ChangePasswordAtLogon 1 为用户下次登陆时必须更改密码,可根据要求自行更改。

 

4. 批量用户导入时,有时候会有少量用户未导入成功,这时候,需要我们手动导入单个用户,命令如下:

New-ADUser -Name "周八" -Surname"" -GivenName ""-SamAccountName "20160219008" -UserPrincipalName"[email protected]" -DisplayName "周八"  -Description "周八"-Path "OU=技术部,OU=用户,OU=Test,DC=test,DC=local" -AccountPassword(ConvertTo-SecureString "[email protected]" -AsPlainText -force ) -Enabled$true -ChangePasswordAtLogon $true

 技术分享

 

注:-Enabled $true是启用账户,-ChangePasswordAtLogon$true为用户下次登陆时必须更改密码,可根据要求自行更改。单用户添加时这两个数值都是用$true来执行才能成功,原因不明。


5. 附上操作的excel文件


本文出自 “笨鸟不飞了” 博客,请务必保留此出处http://ostrich.blog.51cto.com/11191939/1743391

以上是关于PowerShell 批量添加域用户(Windows 2012 R2)的主要内容,如果未能解决你的问题,请参考以下文章

EMS批量为用户分配邮箱

powershell小脚本--批量添加用户属性----导出登录时间

Windows Server 2016-Powershell新建用户补充

AD域的账户创建和设置

添加第一个域用户的 PowerShell 脚本 [权限问题]

Powershell批量新建AD域账号