协助Powershell做while循环

我正在写一个PowerShell脚本在AD中创build一个新用户,然后向他们添加一个邮箱。 我遇到的问题是,脚本运行速度过快,并尝试在用户跨域复制之前跳到下一步(启用用户邮箱)。

我设置了一个做while循环让脚本等待看到用户,然后移动到启用邮箱,但它似乎并没有工作。 我想要做的就是等待,而返回的值是一个错误,然后继续,当它能够得到用户。

任何援助将不胜感激!

脚本如下:

start-sleep -s 1 do { start-sleep -s 1 $userExists = get-aduser -Identity $username | select -expandProperty enabled write-host "." -nonewline } while ($userExists -eq $False) 

你有两种方法来解决你的困境,其中一个你可能不知道存在。 至于你的问题,循环不会破,因为$false是一个布尔值。 布尔值是Powershell中的特定数据types。 你想比较的是$null因为你的$userExistsvariables是空的,除非这个cmdlet返回一个用户对象。

我推荐你使用的选项是用-DomainController参数指定域控制器到exchange cmdlet(可能是Enable-Mailbox )。

您可以通过使用以下代码来获取系统与之通信的域控制器:

 $DC = (Get-ADDomainController).HostName