将域添加到缺少它的Office365通讯组

时间:2019-02-25 18:42:00

标签: powershell office365

因此,我正在尝试找到一种脚本编写方法,以向缺少它的通讯组添加其他域。

运行以下命令

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添加到仅缺少它的通讯组中。

1 个答案:

答案 0 :(得分:0)

以下内容将使您成为组:

$Groups = Get-DistributionGroup | Where-Object {
    ($_.emailaddresses -join "") -notmatch "newdomain\.com"
}

我使用了-join运算符,因为emailaddresses属性包含一个数组。如果数组中的任何值与-notmatch不匹配,则newdomain\.com操作符将返回通讯组对象。我将所有电子邮件地址合并为一个字符串,因此可以将-notmatch应用于单个字符串。

-notmatch尝试与正则表达式不匹配。正则表达式中的.代表任何字符。为了让正则表达式将其作为文字点传递,您需要对其进行转义。 \后跟一个字符允许该字符从字面上进行匹配,前提是\和该字符的组合尚未保留。