2012-03-16 19 views
1

これは死に至ったのですが、これをpowershellの学習体験として使用しています。誰かが自分のコードを見て、どこに間違っているのか教えてもらえますか? Noobコードの警告!Powershell - CSVファイルからADグループにユーザーを追加する

# 
# Add User to an AD Group 
# 
# 

# get arguements and quit if they dont exist 
$CSV = $args[0] 
$GROUP = $args[1] 
if (! $CSV) { 
Write-Host "Please format this command as 'AddUsersToGroup <csv file> <AD group>'" 
Write-Host "CSV file must have the header 'UserName' with AD usernames following" 
exit 
} 


# Read csv file for users and add to AD group 
Import-module ActiveDirectory 
Import-CSV "$CSV" | % { 

# Get existing users from AD group 
$ExistingGroup = "Get-ADGroupMember $GROUP | Select-Object SamAccountName" 

# create new array removing existing users from the csv 
$NewGroup = $ExistingGroup | where {$CSV -notcontains $_} 

# add the users to the AD Group from the new array 
Add-ADGroupMember -Identity $NewGroup -Member $_.UserName 
exit 
} 
+1

あなたはどのようなエラーを得ていますか? –

+0

'Add-ADGroupMember: 'System.Object []'を 'Microsoft.ActiveDirectory.Management.ADGroup'型に変換することができません。パラメータ 'Identity'によって dが必要です。指定されたメソッドはサポートされていません。 C:\ temp \ AddUsersToGroup.ps1:27 char:28 + Add-ADGroupMember -Identity <<<< $ NewGroup-Member $ _。UserName + CategoryInfo:InvalidArgument :(:) [Add-ADGroupMember]、ParameterBindingException + FullyQualifiedErrorId:CannotConvertArgument、Microsoft.ActiveDirectory.Management.Commands.AddADGroupMember' –

答えて

1

がここに二重引用符を削除してみてください:引用付きで

$ExistingGroup = Get-ADGroupMember $GROUP | Select-Object SamAccountName 

を、あなたは変数に文字列値を代入していない、あなたのコマンドの結果

関連する問題