2017-04-11 68 views
0

我想從CSV文件在Office 365中創建通訊組。與多個用戶創建通訊組列表

在我的CSV文件中有一個包含多個用戶一欄,你可以在這個截圖中看到:

enter image description here

這裏是我的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.

任何幫助將不勝感激。

回答

1

的錯誤似乎表明,所有成員都被傳遞作爲一個大的長字符串,如果您的CSV的用戶都用空格隔開,你可以使用-split運營商在PowerShell將它們分成單獨的名字:

$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作爲一個字符串數組,而不是一個大長串。

0

我對列成員有另一個問題:每個成員寫在一個單獨的行。

所以除了-split我用Replace(" [R n",' ') 這裏是我的代碼:

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

相關問題