创建具有多个用户的通讯组列表

Create a distribution list with multiple users

我想通过 CSV 文件在 Office 365 中创建通讯组。

在我的 CSV 文件中有一个包含多个用户的列,如您在此屏幕截图中所见:

这是我的 PowerShell 代码:

$Groups = Import-Csv -path "C:\Users\Youssef IBRAHIMI\Desktop\Script create LD Azure\groupsMM2.csv"
$Groups |
ForEach-Object {
$Name = $_.Name
$DisplayName = $_.Name
$Alias = $_.Aliases
$PrimarySmtpAddress =$_.Email
$ManagedBy = $_.Owners 
$Members = $_.Members
$Notes = $_.Description
$isArchived =$_.isArchived
If($isArchived -eq $True ){
#Write-Host "The  :$Members " 
New-DistributionGroup -Name $Name -DisplayName $DisplayName -PrimarySmtpAddress $PrimarySmtpAddress -ManagedBy $ManagedBy -Members $Members -Notes $Notes
 }
 }

当我执行脚本时,我收到以下有关成员的错误消息:

Je suis trop paresseux pour traduire ce message d'erreur en anglais.

(A.k.a.: L'objet "thach.vo maxime.bauche stephan.coquelet" est introuvable. Assurez-vous que vous l'avez correctement tapé ou spécifiez un autre objet.)

我们将不胜感激。

错误似乎表明所有成员都作为一个大长字符串传递,如果您的 CSV 中的用户由 space 分隔,您可以使用 PowerShell 中的 -split 运算符来将它们分成单独的名称:

$Members = $_.Members -split " "

您可以像这样轻松地将其添加到您的脚本中:

$Groups = Import-Csv -path "C:\Users\Youssef IBRAHIMI\Desktop\Script create LD Azure\groupsMM2.csv"
$Groups |
ForEach-Object {
    $Name = $_.Name
    $DisplayName = $_.Name
    $Alias = $_.Aliases
    $PrimarySmtpAddress = $_.Email
    $ManagedBy = $_.Owners
    $Members = $_.Members -split " "
    $Notes = $_.Description
    $isArchived = $_.isArchived
    If ($isArchived -eq $True)
    {
        #Write-Host "The  :$Members " 
        New-DistributionGroup -Name $Name -DisplayName $DisplayName -PrimarySmtpAddress $PrimarySmtpAddress -ManagedBy $ManagedBy -Members $Members -Notes $Notes
    }
}

这应该将 $Members 作为字符串数组而不是一个大的长字符串传递。

我对专栏成员有另一个问题:每个成员都写在单独的行中。

所以除了-split我还用Replace("rn",' ') 这是我的代码:

$ManagedBy = $_.Owners    
$ManagedBy1 = $ManagedBy.Replace("`r`n",' ') 
$ManagedBy2 = $ManagedBy1 -split " "