active-directory – 帐户创建脚本中的竞争条件,包括电子邮件帐户和Office 365同步 – 除了延迟解决之外的任何好方法?

我有一个用于创建新用户的powershell脚本.每年我们都会增加数百名实习生,因此自动化至关重要. HR中的某人运行脚本,因此该脚本应该是万无一失的.

我遇到了一个竞争条件,我添加了两个新功能,我想以比当前方法(睡眠2分钟)更可靠的方式解决它,它仍然间歇性地失败.

1)Office 365许可证激活.在尝试激活许可证之前,我使用Start-OnlineCoexistenceSync命令强制将Office 365与本地AD同步.据我所知,没有办法检查同步的状态.所以我拖延了2分钟.在测试中这已经奏效,但在生产中它会间歇性地工作.我认为扩大等待会解决,但2分钟已经感觉很长.显然有时它比需要的时间长,我讨厌有不必要的延迟.

2)发送欢迎电子邮件.帐户可能需要不同的时间来创建(有时甚至会失败),但我不想过度延迟脚本.

有关如何解决的任何建议?

最佳答案
Start-OnlineCoexistenceSync cmdlet应在事件日志(目录服务器)的事件日志和事件源“目录同步”中生成一个事件,并说出“导出已完成”,表示目录同步已完成.

所以你想要做的是让你的Powershell脚本等待弹出该事件.这样你只需等待,不再需要等待.当然,你也想要在错误条件下编码,比如你放弃等待该事件的最长时间,等等.

转载注明原文:active-directory – 帐户创建脚本中的竞争条件,包括电子邮件帐户和Office 365同步 – 除了延迟解决之外的任何好方法? - 代码日志