0

AD 環境 (1000 人以上のユーザー) の各ユーザーで異なる値を更新する必要があります。

すべての値を含む CSV ファイルがあります。ファイルの形式は次のようになります

SamAccountName,Name,telephoneNumber,ipPhone....

次の PS 構文でデータをインポートしようとしました。

import-csv -path "PathToCSVFiles" | ForEach-Object {
    get-qaduser -SamAccountName $_.SamAccountName -SearchScope "Subtree" -SearchRoot "ou=SomeOu,DC=subdomain,DC=domain,DC=local"| Set-QADUser -objectAttributes @{ipPhone=$_.ipPhone}
}

しかし、私は常に「Set-QADUser : サーバーは要求を処理することを望んでいません」というメッセージを受け取ります。すべての単一のユーザーオブジェクトのエラー。

foreach-object ブロック内で実行するのではなく、「get-qaduser....set-qaduser」行全体を単一の値で実行すると、完全に正常に機能し、foreach 部分が機能しない理由がわかりません。動作しません。

現時点では、更新が必要なユーザーごとに1行でPS1ファイルを書き込むExcel VBAマクロがありますが、これは混乱しており、あまり役に立ちません。

誰かが私が間違っていることを教えてください。大歓迎です。

ありがとう、最高、マーカス

4

2 に答える 2

1

get コマンドを削除するとどうなりますか?

Import-Csv -path "PathToCSVFiles" | ForEach-Object {
    Set-QADUser $_.SamAccountName -ObjectAttributes @{ipPhone=$_.ipPhone}
}
于 2013-01-31T12:08:42.460 に答える
0

2 番目の foreach ループで $_ は、ipPhone 属性を持たない get-qaduser によって送信された結果を参照します。
代わりにこれを試してください:

import-csv -path "PathToCSVFiles" | ForEach-Object {
    $ipPhone=$_.ipPhone
    get-qaduser -SamAccountName $_.SamAccountName -SearchScope "Subtree" -SearchRoot "ou=SomeOu,DC=subdomain,DC=domain,DC=local"| Set-QADUser -objectAttributes @{ipPhone=$ipPhone}
}
于 2013-01-31T12:06:00.703 に答える