简单的说一下如何批量创建ou、AD用户、组和启用用户邮箱

先收集好公司的组织架构的信息,为每一个部门配置一个ou或者在每个分公司配置一个ou,在分公司ou下再配置部门ou。

注意:如果Excel版本是2010以上的,需要创建xls文件,再转化成csv。

先创建一个branch.csv文件,并填写相关branch的信息。

p_w_picpath

再创建一个部门ou的csv文件,并填写相关信息。

p_w_picpath

利用for…..do…循环命令,批量建OU

for /f  "tokens=1 delims=," %a in (d:\branch.csv) do dsadd ou "ou=%a,dc=contoso,dc=com"

相关说明:

1、先用Excel表格做一个简单模版,将其保存为.csv格式;

2、再用For命令结合dsadd 来完成批量创建OU

3、tokens=1:表示有1个变量

delims=, :表示分隔符为“,”

%a in (d:\branch.csv) :表示变量从路径“d:\branch.csv”中取数据

dsadd :添加命令

ou=%a,dc=contoso,dc=com :表示所创建的用户名与创建位置

ou=%a :设置OU为变量a

更多的参数,请参考dsadd user /?

创建分公司

p_w_picpath

创建分公司下面的部门ou

p_w_picpath

可以在Active Directory用户和计算机看到刚创建的ou

p_w_picpath

这种命令创建出来的ou是可以删除的

p_w_picpath

为了避免其他用户可以删除ou,在powershell将ou设置为防止对象被意外删除

在powershell 加载ad模块,查询没有设置防止对象被意外删除的ou

Import-Module ActiveDirectory

Get-ADOrganizationalUnit -filter * -Properties ProtectedFromAccidentalDeletion | where {$_.ProtectedFromAccidentalDeletion -eq $false} | ft

p_w_picpath

Get-ADOrganizationalUnit -filter * -Properties ProtectedFromAccidentalDeletion | where {$_.ProtectedFromAccidentalDeletion -eq $false} |Set-ADOrganizationalUnit -ProtectedFromAccidentalDeletion $true 

p_w_picpath

p_w_picpath

p_w_picpath

批量创建域用户

创建域用户的csv文件

p_w_picpath

New-ADuser参数:http://technet.microsoft.com/en-us/library/ee617253.aspx

$password = convertto-securestring -String P@ssw0rd -AsPlainText –Force

Import-Csv d:\user01.csv | %{New-ADUser -Name $_.name -SamAccountName $_.SamAccountName  -userprincipalname $_.userprincipalname -givenname $_.givenname -surname $_.surname -displayname $_.displayname  -Path $_.Path -accountpassword $password -enabled $true }

p_w_picpath

将csv文件编码改为UTF-8编码格式

p_w_picpath

重新运行命令

p_w_picpath

p_w_picpath

注意:用户csv文件内的用户名等信息,不要有空格,出现空格会导致创建失败的。

批量创建组并加用户加到组

p_w_picpath

Import-Csv "c:\group.csv" | Foreach {New-ADGroup -Name $_.name -SamAccountName $_.samaccountname -Description $_.description -GroupScope $_.groupscope -GroupCategory $_.groupcategory –Path $_.path}

p_w_picpath

切记:csv文件组名不要空格。

p_w_picpath

将用户加入对应的组

Get-ADUser -Filter {department -eq "IT"} -SearchBase "dc=contoso,dc=com" | %{Add-ADGroupMember -identity "cn=ITGroup,ou=IT,ou=广州分公司,dc=contoso,dc=com"  -Members $($_.SamAccountName)}

p_w_picpath

p_w_picpath

批量启用用户邮箱

Get-User -RecipientTypeDetails User -Filter { UserPrincipalName -ne $Null } | Enable-Mailbox -Database "数据库名称"  (注意:该命令针对整个AD域内的用户,可以配置ou指定到指定数据库)

p_w_picpath

别名出现乱码,我们可以通过脚本来重新设置。

$mailbox=Get-Mailbox

ForEach ($item in $mailbox)

{

$user=Get-User $item

$sam=$user.SAMAccountName

Set-Mailbox $item –Alias "$sam"

}

将脚本保存为ps1文件,然后在EMS运行。

p_w_picpath

查看当前邮箱状态

p_w_picpath