从 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
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
我正在尝试从 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
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