1

なぜこれが機能しないのかわかりませんが、従業員 ID の .csv があり、それらを AD グループに追加したいのですが、これを機能させることができません

Function Sync-ADGroup {
$userIDs = Import-CSV $CSV
foreach($ID in $IDs){
    Get-ADUser -Filter "EmployeeID -eq '$ID'" -Properties SAMAccountName
    }
}

次に、それらをグループに追加しますが、ADUserObject を返すことはできません。何が欠けているのかわからない。

4

2 に答える 2

3

csv ファイルに表示されるユーザーのプロパティ名 (列) を参照する必要があります。たとえば、ファイル内の値が EmployeeID ヘッダーの下にある場合:

foreach($userID in $userIDs)
{ 
    Get-ADUser -Filter "EmployeeID -eq $($userID.EmployeeID)" -Properties SAMAccountName 
}

上記を機能させるには、csv ファイルを次のようにする必要があります。

EmployeeID 
1234 
2345 
3456 
于 2013-03-07T13:09:42.677 に答える
0

宣言されていないコレクション変数が foreach ループで使用されています。

$userIDs = Import-CSV $CSV # Load stuff to "userIDs"
foreach($ID in $IDs){ # Enumerate "IDs", oops, should be "userIDs"

変数が空であるため$IDs、ループはあまり機能しません。

この種のエラーを回避するには、strict モードを使用しますSet-PSDebug -Strict。これにより、宣言されていない変数を使用するとエラーが発生します。(暴言: Powershell では、厳密モードをデフォルトにする必要があります。プロファイルと、作成するすべてのスクリプトで適切に設定します。)

于 2013-03-07T12:53:06.600 に答える