设置域用户P.O. Box通过Powershell设置-ADUser不起作用?

时间:2014-12-13 22:56:27

标签: powershell windows-server-2012

我只是想知道你是否有人使用PowerShell来设置用户P.O.盒子通过 Set-ADUser

我正在比较两个不同域之间的域名,并让我的脚本将差异写回到其中一个DC。在第一次运行时,脚本检测到DC1上的POBox与DC2上的POBox不同,并将DC1中的一个POBox写回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
}
}

1 个答案:

答案 0 :(得分:0)

我在Active Directory中看到一个名为' POBox'这是你的意思吗?

以下是我将如何更新它     Get-ADUser $userName | Set-ADUser -POBox $pobox -Credential $cred

或者这个:

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

希望这有帮助。