Exchange中遇到一个小需求,有很多部门要申请动态通信组,问题是二级部门三级部门四级部门非常非常多。……
Get-ADObject -LDAPFilter "(&(&(ou>="")))" -SearchBase 'OU=xx,OU=xxx,DC=xxx,DC=xxx,DC=com' -Properties CanonicalName | FT CanonicalName -A |Out-File d:\oudaoteng.csv -Encoding utf8
以上语句需要有Active Directory的PowerShell管理工具可以执行,能够输出类似如下的文字
contoso.com/xxxx公司/xxxxsales/产业营销部 contoso.com/xxxx公司/xxxxsales/商务运营 contoso.com/xxxx公司/xxxxsales/商务运 contoso.com/xxxx公司/xxxxsales/华东品牌营销中心 contoso.com/xxxx公司/xxxxsales/商务运 contoso.com/xxxx公司/xxxxsales/商务运营服 contoso.com/xxxx公司/xxxxsales/华北品牌营销中心 contoso.com/xxxx公司/xxxxsales/商务运营服组 contoso.com/xxxx公司/xxxxsales/商务运营 contoso.com/xxxx公司/xxxxsales/商务运 contoso.com/xxxx公司/xxxxsales/华南品牌营销中心
好吧,上面的输出结果其实是假的,不过可以保证,这些OU是不会有重名的,而且连子OU也包含了
接下来就是一个苦逼的操作了
打开这个CSV文件,复制一个新的sheet,把文件拷贝过去,去掉域名和/部分,这样就剩下中文部分了,我准备用中文部分做这个动态通讯组的中文名字,然后再拉一列,随便打点字做英文名字。【这块可以用excel,取一下中文名字的首字母】
第一行给他们命名一下,cn cb ca ,当然这都是随便写的。
好了,拿到这个文件之后,要把它弄成UTF8格式的【这依然要花点小功夫】
最后去Exchange的EMC中运行一下下面的命令。
Import-Csv -Path e:\oudaoteng.csv | foreach { new-DynamicDistributionGroup -Name $_.cb -RecipientContainer $_.cn -IncludedRecipients 'AllRecipients' -Alias $_.ca }
或者用下面这个句子,他会把输出“结果”输出到一个文本文件中。注意是结果,这里也可以不用select *,那么输出的东西会少一些,或者可以选择需要的输出项目
import-Csv -Path d:\oudaoteng.csv | foreach { new-DynamicDistributionGroup -Name $_.cb -RecipientContainer 'contoso.com' -IncludedRecipients 'AllRecipients' -Alias $_.ca |select *|out-file c:\file.txt -append }
然后就是秒开,爽!