【问题标题】:Office 365 Online Sync, Can't find userOffice 365 在线同步,找不到用户
【发布时间】:2016-12-15 12:14:27
【问题描述】:

我对 powershell 很陌生(2 个月的经验),我正在创建自己的脚本来自动化一些任务。

现在我正在编写用户创建脚本。在我到达 office365 部分之前一切正常。

<Creating AD user based on template and filled info>
<Creating Exchange emailbox>
...
#Retrieving email to specify user
$email = (Get-ADUser $initials -Properties mail).mail

#Remoting into server that has Azure AD Sync installed and forcing sync
Invoke-Command -ComputerName <servername> -ScriptBlock {Start-ADSyncSyncCycle -PolicyType Delta} -Credential $AdminCredentials

#Waiting until sync is done, 30 seconds for testing purposes, can be lowered after some testing 
Write-host "Waiting untill sync is done"
Start-Sleep -s 30

#Connecting to office365
Connect-MsolService -Credential $OfficeCredentials

#Creating Licence withouth exchange
$NoExchange = New-MsolLicenseOptions -AccountSkuId syndication-account:O365_BUSINESS_PREMIUM -DisabledPlans "EXCHANGE_S_STANDARD"

#applying licence to user
Set-MsolUserLicense -UserPrincipalName $email -LicenseOptions $NoExchange

现在最后一部分是我得到以下错误的地方:

Set-MsolUserLicense : User Not Found.  User: .
At <path>\UserCreation.ps1:145 char:1
+ Set-MsolUserLicense -UserPrincipalName $email -LicenseOptions $NoExchange
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OperationStopped: (:) [Set-MsolUserLicense], MicrosoftOnlineException
    + FullyQualifiedErrorId : Microsoft.Online.Administration.Automation.UserNotFoundException,Microsoft.Online.Administration.Automation.SetUserLicense

意味着用户在 Office 365 中不存在,即使我强制同步并发出等待 30 秒(只是为了确保其已同步)

如果我在脚本返回此错误后尝试查找用户,我可以找到它...

Get-MsolUser -UserPrincipalName $email

我尝试将等待时间提高到 60 秒,但这似乎没有任何区别。 我是否必须“重新启动”脚本或其他东西才能找到用户,还是有其他方法可以解决这个问题?

提前致谢!

【问题讨论】:

    标签: powershell automation office365


    【解决方案1】:

    不,您根本不需要重新启动脚本或做任何花哨的事情,只需增加Sleep 间隔或检查Start-ADSyncSyncCycle 是否有-Wait 参数(它不应该)或尝试编写类似:

    While ((Get-ADSyncConnectorRunStatus).Runstate -eq "Busy") {
        Start-Sleep 10
    }
    

    【讨论】:

    • 因此,当我的脚本出现该错误时,我去查看并且用户在 office365 中可用,这纯属巧合吗? (截至目前已发生 3 次)
    • 那么找到之后,再运行命令会怎样呢?它有效吗?您是否尝试将 sleep 设置为 2-3-5 分钟,看看效果如何?
    • 在尝试此操作时,我发现我的许可选项中有一个错误,我会先尝试修复该问题,然后再回到这个问题 :)
    • 好的,我已经尝试将睡眠时间设置为 90 秒,并且现在可以添加正常的许可证。也许我急于解决这个问题..我的许可证选项现在确实有另一个问题...
    • 在这种情况下,将此答案标记为答案并创建一个新问题;)@FroggyFreshh
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-31
    • 1970-01-01
    • 1970-01-01
    • 2012-11-09
    • 1970-01-01
    相关资源
    最近更新 更多