迁移PowerShell脚本至Microsoft Graph模块时,Invoke-MgInvalidateUserRefreshToken cmdlet不存在的问题咨询
解决办法:替代
Revoke-AzureADUserAllRefreshToken的Graph方案 你遇到的问题很常见——很多Graph模块的cmdlet会先在beta版本中推出,稳定版(v1.0)的模块可能还没同步更新。针对你的情况,这里有两个可靠的解决方案:
方案1:安装并使用Microsoft Graph Beta模块
Invoke-MgInvalidateUserRefreshToken目前只存在于Graph Beta模块中,你使用的1.9.6版本属于v1.0稳定分支,还未包含这个cmdlet。可以按照以下步骤操作:
- 先安装Beta模块(如果还未安装):
Install-Module Microsoft.Graph.Beta -Scope CurrentUser -Force - 导入Beta模块时,建议使用别名避免和v1.0模块冲突:
Import-Module Microsoft.Graph.Beta -Alias MgBeta - 执行对应的cmdlet完成刷新令牌吊销:
MgBeta\Invoke-MgInvalidateUserRefreshToken -UserId $O365User.ObjectId -ErrorAction Stop
方案2:直接调用Microsoft Graph API(无需Beta模块)
如果不想切换到Beta模块,你可以直接用Invoke-MgGraphRequest调用底层API,这也是稳定可靠的方式:
Invoke-MgGraphRequest -Method POST -Uri "/users/$($O365User.ObjectId)/invalidateAllRefreshTokens" -ErrorAction Stop
重要权限提醒
不管用哪种方案,都需要确保你的Graph权限足够:
- 所需的最小权限是
User.ReadWrite.All(应用权限)或者Directory.AccessAsUser.All(委派权限) - 如果之前已经授权过权限,记得检查是否包含上述权限,必要时重新授权:
Connect-MgGraph -Scopes "User.ReadWrite.All"
内容的提问来源于stack exchange,提问作者Vandrey Trindade
相关产品推荐
相关产品推荐

