2017-05-26 11 views
0

Active Directoryでカスタムアトリビュートを更新する際に少し問題があります。Active Directoryでカスタム属性を更新する

これまで属性を更新していますが、CSVファイルから1行の値ではなく、行全体を送信します。

OK ... Here's私のcsvファイルがどのように見えるか:

PERSONALNUMMER;GESCHLECHT;NACHNAME;VORNAME;EMAIL;MOBIL;TEL;BEZIRK;VORGESETZER;ZINR;ZINAME;SPESENHOEHE;KOSTENSTELLE;VBART;COLLECTION; 
AA871;W;Mustermann;Max;[email protected];+49123456789;+492345678901;22559;A0C57;0000000031;Maxine Mustermann;01;0010076540;VB;0 

そして、これが私のAD属性にインポートされたものです:OK

@{PERSONALNUMMER=AA871; GESCHLECHT=W; NACHNAME=Mustermann; VORNAME=Max; [email protected]; MOBIL=+49123456789; TEL=++492345678901; BEZIRK=22559; VORGESETZER=A0C57; ZINR=0000000031; ZINAME=Maxine Mustermann; SPESENHOEHE=01; KOSTENSTELLE=0010076540; VBART=VB; COLLECTION=0}.Collection 

...そして今、コードこれを行うスニペット:

$users = Import-Csv $FullDestPath -Delimiter ';' 
foreach ($user in $users) { 
IF ($user.Collection -ne '') {Get-ADUser -Filter "SamAccountName -eq '$($user.PERSONALNUMMER)'" -Properties * -SearchBase "DC=intern,DC=berendsohn,DC=com" | Set-ADUser -replace @{bAGCollection="$user.Collection"}} 
Else {Get-ADUser -Filter "SamAccountName -eq '$($user.PERSONALNUMMER)'" -Properties * -SearchBase "DC=intern,DC=contoso,DC=com" |Set-ADUser -replace @{bAGCollection=""}} 
} 

あなたがここで私を助けることができる場合は、変数$ user全体をインポートします。

Set-ADUser -replace @{bAGCollection="$user.Collection"} 

$userを拡大し、文字列リテラルとして.Collectionを処理するパーサになります:あなたが使用して文字列があるため

+0

、何を達成しようとしていますか? – Raf

+0

あなたの返信ありがとう、ラルフ。 CSVはCollectionの値です(この場合は0)。私の投稿に表示されている文字列の代わりにカスタム属性bAGCollectionを更新したいとします。 –

+0

'@ {bAGCollection =" $ user.Collection "}' - > '@ {bAGCollection =" $($ user.Collection) "}' –

答えて

1

理由があります。部分式演算子$()を使用して、プロパティの参照を囲み:あなたの質問は不完全に見えます

Set-ADUser -replace @{bAGCollection="$($user.Collection)"} 
関連する問題