2017-02-23 44 views
1

我有我使用更新AD从CSV属性的脚本。该脚本工作正常,但我一直在问到已经填充的更新的用户属性。例如,如果在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