0

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

在此处输入图像描述

但是当我创建一个新的通讯组时

function GroupAddGroup([string] $GroupName)
{
    $newGroup = New-DistributionGroup $GroupName;
    return $newGroup.Name
}

我必须等待 5 到 60 秒才能访问该组(添加成员等)。

问题是:我为什么要等待?解决它的最佳方法是什么(也许有一次需要 65 秒或 300 秒......)?

4

2 回答 2

0

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

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

如果New-DistributionGroup抱怨它也找不到新创建的联系人对象,那么您可以尝试的下一件事是-DomainController在执行New-MailContactand时指定要使用的域控制器New-DistributionGroup

于 2012-06-23T20:16:35.873 回答
0

到目前为止,我发现了一些工作正常的东西:

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"}

}
于 2012-06-26T12:35:46.017 回答