2014-12-13 92 views
-1

我只是想知道您是否有人使用PowerShell來設置用戶P.O.通過 Set-ADUser設置域用戶P.O. Box通過Powershell set-ADUser不起作用?

我比較兩個不同域之間的domainaccounts並讓我的腳本將差異寫回到其中一個DC。在第一次運行時,腳本檢測到DC1上存在與DC2不同的POBox,並將DC1中的一個寫回到DC2。

這與除postOfficeBox以外的所有屬性完全吻合。 如上所述,在第一次運行時,腳本檢測到更改並將更改寫回。但是,這並不適用於postOfficeBox。如果我在DC2上打開userobject,它仍然是空白的!更奇怪的是,如果我再次運行它,腳本不會檢測到POBox是空白的!我必須手動修改postOfficeBox以便腳本再次看到任何更改。 (和空白我的意思是沒有空格)

所有其他屬性工作正常。這是Win Server 2012和WPS上的一個可能的錯誤嗎?

下面的代碼:

$attributes = "c","co","company","countryCode","department","displayName","postOfficeBox","sAMAccountName" 
$user1 = Try{Get-ADUser -Identity $_.SamAccountName -Properties $attributes} 
catch{} 
$user2 = try{Get-ADUser -Identity $_.SamAccountName -Properties $attributes -Credential $AdminCredentials -Server $dc2} 
catch{} 

if ($user1.SamAccountName -eq $user2.SamAccountName) { 
    $chk_modified = @{} 
    $attributes | ? { $user1.$_ -ne $user2.$_ } | % { 
     $chk_modified[$_] = $user2.$_ 
     } 
if ($chk_modified.Count -ge 1) { 
Set-ADUser -Identity $_.SamAccountName -Replace $chk_modified 
} 
} 

回答

0

我看到一個字段名爲「郵政信箱」的Active Directory這是你的意思領域?

這是我如何將更新它 Get-ADUser $userName | Set-ADUser -POBox $pobox -Credential $cred

或本:

'Get-ADUser -Identity $_.SamAccountName | Set-ADUser -postOfficeBox "the new box 42" -credential $cred' 

希望這有助於。

+0

是的。這是P.O.的領域。地址選項卡下的框。它是通過postOfficeBox的地址。 – StUffz

+0

所以在我的情況下,它會看起來像'Get-ADUser -Identity $ _。SamAccountName | Set-ADUser -Replace @ {postOfficeBox =「the new box 42」}' 除此之外,我的腳本和你的一樣。但是P.O.的領域。盒子總是空的。 (但是:它通過在空的powershell中手動編寫set-aduser來工作) – StUffz