0

csv ファイルからいくつかのパラメータを AD にインポートしようとしています。電子メールでデータを照合したいです。Quest ActiveRoles Management Shell を使用しています。

Import-Csv c:\Test.csv |ForEach-Object {
Set-QADUser 'ou=User,ou=Accounts,ou=PL,dc=test,dc=com'  
if(($_.E-mail Address)=mail){ $_.HR Department Code -department 
$_.HR Department Code -telephoneNumber $_.Reports to L1 Formal Name -manager}
else
(Write-Host 'ERROR, User not present in AD')
}

このループの何が問題になっていますか? 「人事部コード」のように、この空白でそれを行うことは可能ですか?変数に置き換えてみましたが、機能しません。私はこのアイデアを使ってこれを書いていました。$_ を使用しています。csvの列/属性名と一致させる

http://dmitrysotnikov.wordpress.com/2008/10/03/update-active-directory-user-accounts-from-csv-file/

**アップデート

現在使用しているコード:

Import-Csv 'C:\Test_Peoplesoft.csv' | foreach-object{set-qaduser -mail $_.'E-mail Address' -Department $_.'HR Department Code'  -telephoneNumber $_.'HR Department Code'}

今は何も起こっていません。ただ始まって止まることはありません。何も起こらないように見えます。ログインが必要であり、私のcsvファイルには現在、このフィールドにスーパーバイザーのフルネームがあるため、マネージャーフィールドをスキップしました。

4

1 に答える 1

1

あなたのifステートメントが実際にcsvメールとADメールを比較しているとは思いません。電子メールを ID パラメーターとして使用するだけです。

  Import-Csv $file | foreach-object{set-qaduser $_.email -Department $_.department -Manager $_.manager -Title $_.title -ObjectAttributes @{employeeID=($_.employeeID)}}

明らかに、使用していない例に追加した属性がいくつかあります。また、ヘッダー名を実際のヘッダー名に置き換えてください。また、CSV のヘッダーにスペースを入れないようにしています。従業員 ID や拡張属性などの非標準属性は、-objectAttributes で設定する必要があります。

于 2014-08-20T15:17:45.380 に答える