2016-11-10 7 views
0

私は顧客用のAD展開を自動化するためのスクリプトを作成しています。 CSVファイルには、ユーザーとグループの準備リストが用意されています。グループは、次の形式のファイルで構成されています。私は同じCSVファイルを使用してADグループを作成しています(これは前の手順で行われます)。CSVからADグループにユーザーを追加するPowershell関数

Name,Description,Members 
GroupName,GroupDescription,"user1,user2,user3" 

私はグループにユーザーを追加するために使用しているコードは以下の通りです:

$groups = Import-CSV -Path $groupCSVPath 
$groups | % { Add-ADGroupMember -Identity $_.Name -Members $_.Members } 

これはエラーになります:ます。Get-ADUser:IDを持つオブジェクトを見つけることができません:「USER1 、user2、user3 '

私は次のことをしようとすると、それが動作:

Add-ADGroupMember -Identity "GroupName" -Members user1,user2,user3 

誤差が入力として配列を受け付けないのGet-ADUserコマンドを、参照するために表示されます。ただし、Add-ADGroupMemberコマンドは機能します。 Add-ADGroupMemberコマンドを使用するときにGet-ADUserエラーが発生するのはなぜですか。また、ADユーザー名の値の配列を受け付けるにはどうすればよいですか?

+0

それはあなたのCSVファイルが実際にリストのリストであるように見えます。 CSVファイルの各エントリには、1つのGroupName、1つのGroupDescription、およびユーザのリストが含まれています。右?このデータを「正規化」して、各エントリにGroupName、GroupDescription、およびちょうど1人のユーザーが含まれるようにする方法があります。エントリが増え、各エントリのデータが少なくなります。しかし、それは深刻な欠点があるので、私は答えとしてこれを掲示していません。 –

答えて

1

トリッキーなもの。この問題は、$_.membersパラメータがコマンドレットに、別の値の配列ではなく単一の文字列として渡されていることが判明しました。これは、方法がImport-CSVであるためです。 Get-Help Add-ADGroupMemberは、membersパラメータに文字列ではなく配列が必要であることを示しています。

これは動作するはずですが、私はそれをテストしてみた:

$groups | % { Add-ADGroupMember -Identity $_.Name -Members $_.members.split(',') }

+0

ええ、それはトリッキーでしたが、SOのここの人々は再び救助に来ました。ありがとう! – McKenning

関連する問題