创建具有多个用户的通讯组列表
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 " "
我想通过 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 " "