简单的说一下如何批量创建ou、AD用户、组和启用用户邮箱
先收集好公司的组织架构的信息,为每一个部门配置一个ou或者在每个分公司配置一个ou,在分公司ou下再配置部门ou。
注意:如果Excel版本是2010以上的,需要创建xls文件,再转化成csv。
先创建一个branch.csv文件,并填写相关branch的信息。
再创建一个部门ou的csv文件,并填写相关信息。
利用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 /?
创建分公司
创建分公司下面的部门ou
可以在Active Directory用户和计算机看到刚创建的ou
这种命令创建出来的ou是可以删除的
为了避免其他用户可以删除ou,在powershell将ou设置为防止对象被意外删除
在powershell 加载ad模块,查询没有设置防止对象被意外删除的ou
Import-Module ActiveDirectory Get-ADOrganizationalUnit -filter * -Properties ProtectedFromAccidentalDeletion | where {$_.ProtectedFromAccidentalDeletion -eq $false} | ft
Get-ADOrganizationalUnit -filter * -Properties ProtectedFromAccidentalDeletion | where {$_.ProtectedFromAccidentalDeletion -eq $false} |Set-ADOrganizationalUnit -ProtectedFromAccidentalDeletion $true
批量创建域用户
创建域用户的csv文件
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 }
将csv文件编码改为UTF-8编码格式
重新运行命令
注意:用户csv文件内的用户名等信息,不要有空格,出现空格会导致创建失败的。
批量创建组并加用户加到组
Import-Csv "c:\group.csv" | Foreach {New-ADGroup -Name $_.name -SamAccountName $_.samaccountname -Description $_.description -GroupScope $_.groupscope -GroupCategory $_.groupcategory –Path $_.path}
切记:csv文件组名不要空格。
将用户加入对应的组
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)}
批量启用用户邮箱
Get-User -RecipientTypeDetails User -Filter { UserPrincipalName -ne $Null } | Enable-Mailbox -Database "数据库名称"
(注意:该命令针对整个AD域内的用户,可以配置ou指定到指定数据库)
别名出现乱码,我们可以通过脚本来重新设置。
$mailbox=Get-Mailbox ForEach ($item in $mailbox) { $user=Get-User $item $sam=$user.SAMAccountName Set-Mailbox $item –Alias "$sam" }
将脚本保存为ps1文件,然后在EMS运行。
查看当前邮箱状态