我正在构建一个Powershell脚本来管理通讯组和联系人。
但是当我创建一个新的分发组
时function GroupAddGroup([string] $GroupName)
{
$newGroup = New-DistributionGroup $GroupName;
return $newGroup.Name
}
我必须等待5到60秒之间,直到我可以访问该组(添加成员等)。
问题是:为什么我要等?什么是解决它的最佳方式(一次需要65个soconds或300秒......)?
答案 0 :(得分:0)
问题可能是复制延迟造成的。例如,它正在等待新创建的组复制到另一个域控制器或全局编录。请注意,在将通用组复制到全局编录之前,不能对其进行修改。
我自己没有尝试,但我认为要解决问题,最简单的方法是更改流程中的对象创建顺序。您应首先创建联系人对象,然后创建通讯组,而不是先创建通讯组,然后再创建联系人。在创建通讯组时,指定-Members
并传入新创建的联系对象。
如果New-DistributionGroup
抱怨无法找到新创建的联系人对象,那么您可以尝试的另一件事是在执行-DomainController
和New-MailContact
时指定要由New-DistributionGroup
使用的域控制器{1}}
答案 1 :(得分: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"}
}