【发布时间】:2016-04-28 15:11:49
【问题描述】:
我创建了一个 PowerShell 脚本,在大多数情况下都非常好用。 首先,脚本创建一个用户帐户。紧接着,(在“读取主机”用户是否需要邮箱输入之后)它会创建一个邮箱。完成后,一些(外出)设置将应用于邮箱。
由于某种原因,脚本看起来太快了。很多时候它以失败告终,说找不到用户。它发生在邮箱创建部分之后,当我想应用一些设置时。 如果我在用户创建和邮箱创建部分之间等待几分钟,一切都会好起来的。
代码
# code here that creates user account.
# read-host "does user need to have a mailbox"?
Enable-Mailbox -identity $sam -database $maildb
# here I get Enable-Mailbox outputs - Name, Alias etc
Get-Mailbox -identity $sam | Set-Mailbox -ExternalOOFOptions InternalOnly
我经常收到错误:
错误:在 OU 中找不到对象
我只想让脚本创建所有内容,而无需等待。 有没有办法让我做到这一点?
我正在从工作站运行脚本并正在导入活动目录并交换 PowerShell 模块。
【问题讨论】:
-
您在脚本中使用了哪些命令?也许使用
New-Mailboxcmdlet 会更好。见here。只需添加一些逻辑来延迟用户帐户和邮箱的创建,直到他们回答该帐户是否应该有邮箱。如果是,则使用New-Mailbox命令创建它,否则使用其他方法。 -
您好 ChadSikorra,感谢您的回复!创建用户后,我正在使用: Enable-Mailbox -identity $sam -database $maildb 该脚本为我提供了一些输出,例如名称、别名等。因此,邮箱已创建。之后,下一个命令是:Get-Mailbox -identity $sam | Set-Mailbox -ExternalOOFOptions InternalOnly 这是大多数时候我收到错误的地方:错误:无法在 OU 中找到对象
-
我认为您最好使用
New-Mailbox命令同时创建用户和邮箱,这正是它的用途。这样您就不必担心可能无法立即同步的内容只有在您确定他们没有邮箱时才使用New-ADUser。这样您就可以保存来自New-Mailbox的输出并直接针对它调用您的Set-Mailbox命令。
标签: powershell active-directory exchange-server-2010