因此,我正在尝试找到一种脚本编写方法,以向缺少它的通讯组添加其他域。
运行以下命令
Get-DistributionGroup | Where {$_.emailaddresses –like "*newdomain.com*"} | FT -Property Name,Alias,EmailAddresses -Autosize
我只得到拥有它的团体。
我跑步时
Get-DistributionGroup | Where {$_.emailaddresses –notlike "*newdomain.com*"} | FT -Property Name,Alias,EmailAddresses -Autosize
我得到所有组,因为所有组都有主域。
我需要做的是找到缺少新域的组,并将其添加到这些组中。
类似的东西:
$Groups = Get-DistributionGroup | Where {$_.emailaddresses –notlike "*newdomain.com*"}
$Groups | ForEach-Object {
$group = $_.Name
Set-DistributionGroup $group -EmailAddresses @{add=$group + "@newdomain.com"}
这样我的结果将是groupname@newdomain.com添加到仅缺少它的通讯组中。
答案 0 :(得分:0)
以下内容将使您成为组:
$Groups = Get-DistributionGroup | Where-Object {
($_.emailaddresses -join "") -notmatch "newdomain\.com"
}
我使用了-join
运算符,因为emailaddresses
属性包含一个数组。如果数组中的任何值与-notmatch
不匹配,则newdomain\.com
操作符将返回通讯组对象。我将所有电子邮件地址合并为一个字符串,因此可以将-notmatch
应用于单个字符串。
-notmatch
尝试与正则表达式不匹配。正则表达式中的.
代表任何字符。为了让正则表达式将其作为文字点传递,您需要对其进行转义。 \
后跟一个字符允许该字符从字面上进行匹配,前提是\
和该字符的组合尚未保留。