2017-06-29 7 views
-1

自分が所属するユーザーとグループのリストを持つCSVファイルがあります。 PowerShellを使ってスクリプトを自動化しようとしていますが、エラーに直面しているようです。デバッグしようとすると何らかの理由でユーザー名の値が空白になってしまいます。ADのグループに複数のユーザーを追加する

助けてください。

$Users = import-csv -Path "C:\Scripts\listofusers.csv" 

foreach-Object ($User in $Users) 
{ 
    $SAM = $User.'SAM' 
    $group = $User.'Group' 

    Add-ADGroupMember -Identity $group -Members "$SAM" 
} 

テストデータ

Group     SAM 

IT      Test1 
Engineering   Test3 
+1

For Eachループでその悪い男の子を投げて1日と呼ぶことはできませんか? – coinbird

答えて

0

あなたが書いたようにデータがある場合は、CSVからのデータをインポートする際の区切り文字を定義する必要があります。デフォルトでは、デリミタはカンマであるため、データに適合しません。ちょうど使用する

$Users = import-csv -Path 'C:\Scripts\listofusers.csv' -Delimiter ' ' 

スペースではなくタブであれば、 `t(これはtの前にバックティック)を使用します。

+0

区切り文字のタイプを定義した後でも、それは受け入れられませんでした。グループ名を一定にして、複数のユーザーを追加すると、それを認識しますが、異なるグループとユーザー名を同時に取得するために自動化することはできません。 – Anirudh

2

変更:

foreach-Object ($User in $Users) 

へ:

foreach ($User in $Users) 

オブジェクトのコレクションを超える foreachの文を反復foreach-objectはそのためのパイプライン

に使用されているのに対し、以下を試してください。

$Users = import-csv -Path "C:\Scripts\listofusers.csv" 
foreach ($User in $Users) { 
$SAM = $User.'SAM' 
$group = $User.'Group' 
Add-ADGroupMember -Identity $group -Members "$SAM" 
} 
+0

私はforeachを試しましたが、同じ問題が発生しました – Anirudh

+0

私は完全なコードを含める答えを修正しました - これを試してください。あなたの見出しを確認するには、CSVはまだ "グループ"と "サム"ですか? – Itchydon

+0

いいえ違いはまだありません。グループを一定にして、ループが機能していない理由をデバッグするポストが変更されているかどうかを確認します。 – Anirudh

関連する問題