从 AzureAD / Office 365 清除已删除的外部用户失败,出现 UserNotFoundException

Purging deleted external user from AzureAD / Office 365 fails with UserNotFoundException

我正在尝试从 Office 365 / AzureAD 中清除已删除的用户。这样做的方法似乎是 Remove-MsolUser-RemoveFromRecycleBin 标志。

我可以使用

检索用户
Get-MsolUser -All -ReturnDeletedUsers | ? {$_.userPrincipalName -eq $USERNAME}

当我尝试用

删除它时
Remove-MsolUser -UserPrincipalName $USERNAME -RemoveFromRecycleBin

我明白了

Remove-MsolUser : User Not Found in the Microsoft Online directory Deleted Users container.  User:
xxxxxx#EXT#@yyyyyyyyy.
In Zeile:1 Zeichen:1
+ Remove-MsolUser -UserPrincipalName $USERNAME -RemoveFromRecycleBin
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OperationStopped: (:) [Remove-MsolUser], MicrosoftOnlineException
    + FullyQualifiedErrorId : Microsoft.Online.Administration.Automation.UserNotFoundException,Microsoft.Online.Admini
   stration.Automation.RemoveUser

https://support.microsoft.com/en-us/help/3019157/remove-msoluser-user-not-found-error-when-you-try-to-remove-a-user-fro 状态

This problem occurs if the user who is performing the action is not a global admin.

但是我使用的全局管理员。

如果您必须为 Azure Active Directory 使用较旧的 MSOnline V1 PowerShell 模块,您需要从回收站中删除来宾用户,并将用户名设置为来宾用户的真实电子邮件地址。

例如,如果来宾用户是 aaa@outlook.com。它将被列为 aaa_outlook.com#EXT#@***.onmicrosoft.com 和 Get-MsolUser。但是你需要设置 $USERNAME = "aaa@outlook.com" 而不是 "aaa_outlook.com#EXT#@***.onmicrosoft.com".

然后您就可以将其从回收站中删除了。

在这种情况下,最好将 Get-MsolUser -All -ReturnDeletedUsers | ? {$_.userPrincipalName -eq $USERNAME} 的输出直接传送到 Remove-MsolUser
这样,使用 ObjectID 属性 而不是 UserPrincipalName,一旦添加到回收站,它看起来已被更改 (#EXT#)。

然而,ObjectID(一个 GUID)没有改变并且唯一标识用户对象。

尝试:

Get-MsolUser -All -ReturnDeletedUsers | ? {$_.userPrincipalName -eq $USERNAME} |
Remove-MsolUser -RemoveFromRecycleBin

或者:

$exUser = Get-MsolUser -All -ReturnDeletedUsers | ? {$_.userPrincipalName -eq $USERNAME}
Remove-MsolUser -ObjectId $exUser.ObjectID -RemoveFromRecycleBin