2017-02-23 46 views
1

私はCSVからAD属性を更新するために使用しているスクリプトを持っています。スクリプトは正常に動作しますが、ではなく、のユーザー属性の更新が既に行われています。たとえば、ユーザーの電話番号属性がADに入力されている場合は、これを無視して次の属性に移動します。誰も私がこれを達成するための最善の方法を理解するのを助けることができますか?それが今存在しているようSet-ADUser設定された属性を無視する

は、ここに私のスクリプトです:

$users = import-csv -path c:\temp\testing_user.csv -delimiter "$" 
foreach ($user in $users) {    
Get-ADUser -filter "SamAccountName -eq '$($user.userid)'" -Properties * -server ($user.Domain) 
Set-ADUser -Identity $user.userid -OfficePhone $($user.Phone) -Title $($user.Title) -Manager $($user.mgruserid) -Department $($user.dept) 
} 

答えて

0

残念ながら、Set-ADUser-NoClobberを持っていません。したがって、各プロパティをテストする必要があります。おそらく、それぞれのプロパティに対して個別のifブロックを設定し、個別に設定することが最も適切です。

$users = import-csv -path c:\temp\testing_user.csv -delimiter "$" 
foreach ($user in $users) {    
    $ADUserObject = Get-ADUser -filter "SamAccountName -eq '$($user.userid)'" -Properties * -server ($user.Domain) 
    if ($null -eq $ADUserObject.OfficePhone) { 
     Set-ADUser -Identity $user.userid -OfficePhone $($user.Phone) 
    } 
    ... 
} 
+0

ありがとう、私はこれがトリックをすると思います! – user7358575

関連する問題