0

所以在我的脚本中,当用户更改他们的名字时,我相应地重命名他们的 AD 对象,更改他们的 Exchange (2007) 属性,然后根据这些更改,我更改它所在的信息存储。

检索邮箱时,我将新的 DistinguishedName 存储在 $newDN 中,明确尝试使用 DC01.domain.local,然后当我尝试进行移动时,它尝试在 DC02.domain.local 上搜索,因此由于以下原因找不到对象复制滞后并在下面收到此错误。有人对此有任何想法吗?非常感谢!

StatusCode:-1056749240 StatusMessage:步骤中发生错误:批准对象。无法打开对象 'LDAP://DC02.domain.local/CN=di matteo\, robert,OU=Users,DC=domain,DC=local' 错误:服务器上没有这样的对象。

$mailbox = Get-Mailbox -ID $newDN `
    -DomainController DC01.domain.local

$mailbox | Move-Mailbox `
    -TargetDatabase $targetIS `
    -Confirm:$False `
    -DomainController DC01.domain.local `
    -GlobalCatalog DC01.domain.local

有时移动有效,但当它无效时,它会将 SourceDomainController 属性留空(如下所示),就像它确实有效一样,它会使用 DC01.domain.local 正确填充它。

SourceServer                     : CCR.domain.local
SourceDatabase                   : CCR\IS1\IS1
SourceGlobalCatalog              : DC01.domain.local
SourceDomainController           : 
TargetGlobalCatalog              : DC01.domain.local
TargetDomainController           : DC01.domain.local
TargetMailbox                    : 
TargetServer                     : CCR.domain.local
TargetDatabase                   : CCR\IS2\IS2

莫名其妙。

4

1 回答 1

0

好吧,我不知道为什么我会得到我现在的结果,但我的解决方法就在这里......就像我之前说的,我查询/写入我所有的 AD 更改到 'DC01.domain.local' 但是现在,当我调用我的函数时,我会在“DC02.domain.local”上查找邮箱。如果查找失败,增加计数器,休眠大约 20 秒,然后重试。我最初的测试,它只需要循环一次。

$dc = "DC01.domain.local"

Function moveDB ($targetIS, $newDN, $counter) {

$dn = (Get-Mailbox -ID $newDN -DomainController $dc).DistinguishedName

If (!(Get-Mailbox $dn -DomainController "DC02.domain.local")) {
    $counter++
    If ($counter -le 4) {
        Write-Host "`nPlease wait while I search for the mailbox object...`n"  -ForegroundColor Yellow -BackgroundColor Red
        Start-Sleep -Seconds 20
        moveDB $targetIS $dn $dbCounter
    }
    Else {
        Write-Host "Mailbox was not moved!  Please move manually to $targetIS..."  -ForegroundColor Yellow -BackgroundColor Red
        return
    }
}
Else {
    $dn | Move-Mailbox `
        -DomainController $dc `
        -GlobalCatalog $dc `
        -TargetDatabase $targetIS `
        -Confirm:$False
    }
}
于 2012-12-19T21:33:36.833 回答