我只是想知道你是否有人使用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
}
}
答案 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'
希望这有帮助。