Powershell Active Directory新ADObject

Powershell Active Directory新ADObject,powershell,active-directory,powershell-2.0,exchange-server,Powershell,Active Directory,Powershell 2.0,Exchange Server,我正在构建一个Powershell脚本来管理通讯组和联系人 但是当我创建一个新的distributiongroup时 function GroupAddGroup([string] $GroupName) { $newGroup = New-DistributionGroup $GroupName; return $newGroup.Name } 我必须等待5到60秒,直到我可以访问添加成员的组等等 问题是:我为什么要等待?如果一次需要65秒或300秒,最好的解决方法是什么?问

我正在构建一个Powershell脚本来管理通讯组和联系人

但是当我创建一个新的distributiongroup时

function GroupAddGroup([string] $GroupName)
{
    $newGroup = New-DistributionGroup $GroupName;
    return $newGroup.Name
}
我必须等待5到60秒,直到我可以访问添加成员的组等等


问题是:我为什么要等待?如果一次需要65秒或300秒,最好的解决方法是什么?

问题可能是由于复制延迟。例如,它正在等待新创建的组复制到另一个域控制器或全局编录。请注意,在将通用组复制到全局目录之前,无法修改它

我自己没有尝试过,但我认为要解决这个问题,最简单的方法是更改流中的对象创建顺序。您不应该先创建通讯组,然后创建联系人,而应该先创建联系人对象,然后创建通讯组。在创建通讯组时,指定-Members并传入新创建的联系人对象


如果New DistributionGroup抱怨它也找不到新创建的联系人对象,那么您可以尝试的下一件事是指定域控制器,以便在执行新的MailContact和New DistributionGroup时由-DomainController使用。我发现到目前为止,它工作正常:

function DistributionGroupExists([string] $Identity)
{
    $timer = [diagnostics.stopwatch]::startnew()
    while ($timer.elapsed.totalseconds -lt 30){

    if (Get-DistributionGroup $Identity){
        break
    }
    else 
    {
    start-sleep -seconds 5
    }
    }

    $timer.stop()
    if (!(Get-ADObject $Identity)){Write-host "Warning: Mailbox creation failed for $user after $($timer.elapsed.totalseconds) seconds."}
    else {write-host "Mailbox creation successful for $user in $($timer.elapsed.totalseconds) seconds"}

}

问题是什么?如何等待?阅读:@ravikanth我已经编辑了我的问题,非常感谢!