You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写PowerShell脚本撤销Azure AD用户刷新令牌并禁用设备

Azure AD用户访问管控整合PowerShell脚本实现

完整可直接分发运行的脚本

<#
脚本功能:吊销指定Azure AD用户所有刷新令牌、禁用该用户名下所有注册设备
运行要求:需以管理员身份启动PowerShell,提前安装AzureAD模块
#>

# 检查AzureAD模块是否安装,未安装则直接提示退出
if (-not (Get-Module -Name AzureAD -ListAvailable)) {
    Write-Host "*错误:当前设备未安装AzureAD模块,请先执行 Install-Module AzureAD 完成安装后再运行脚本*" -ForegroundColor Red
    pause
    exit 1
}

# 交互提示输入目标用户账号
$targetUser = Read-Host -Prompt "请输入需要执行管控操作的目标用户UPN(例:johndoe@contoso.com)"
# 空输入校验
if ([string]::IsNullOrWhiteSpace($targetUser)) {
    Write-Host "*错误:未输入有效用户账号,脚本退出*" -ForegroundColor Red
    pause
    exit 1
}

try {
    # 连接Azure AD租户
    Write-Host "`n正在连接Azure AD,请在弹出的登录窗口中输入具备管理员权限的工作账号..." -ForegroundColor Cyan
    Connect-AzureAD -ErrorAction Stop

    # 校验输入的用户是否存在
    $userInfo = Get-AzureADUser -ObjectId $targetUser -ErrorAction Stop
    Write-Host "已匹配到目标用户:$($userInfo.DisplayName)($targetUser),即将执行管控操作" -ForegroundColor Yellow

    # 吊销该用户所有刷新令牌,强制所有已登录会话重新认证
    Write-Host "`n正在吊销用户所有刷新令牌..." -ForegroundColor Cyan
    Revoke-AzureADUserAllRefreshToken -ObjectId $targetUser -ErrorAction Stop
    Write-Host "✅ 用户刷新令牌吊销完成" -ForegroundColor Green

    # 禁用该用户名下所有注册的Azure AD设备
    Write-Host "`n正在禁用用户名下所有注册设备..." -ForegroundColor Cyan
    $userDevices = Get-AzureADUserRegisteredDevice -ObjectId $targetUser -ErrorAction Stop
    if ($userDevices.Count -eq 0) {
        Write-Host "⚠️ 该用户名下无注册的Azure AD设备,跳过设备禁用步骤" -ForegroundColor Yellow
    }
    else {
        $userDevices | Set-AzureADDevice -AccountEnabled $false -ErrorAction Stop
        Write-Host "✅ 已禁用该用户名下共$($userDevices.Count)台注册设备" -ForegroundColor Green
    }

    Write-Host "`n🎉 所有管控操作执行完成!" -ForegroundColor Green
}
catch {
    Write-Host "`n❌ 脚本执行出错:$($_.Exception.Message)" -ForegroundColor Red
}
finally {
    # 执行完成后自动断开Azure AD连接
    Disconnect-AzureAD -ErrorAction SilentlyContinue
    pause
}

核心设计说明

  • 你推测的Read-Host交互逻辑完全可行,脚本通过该命令接收操作人员输入的账号,替换原命令片段中硬编码的johndoe@contoso.com值,可适配任意目标用户的管控需求
  • 补充了多层前置校验:包含AzureAD模块存在性检查、空输入校验、目标用户存在性校验,避免环境缺依赖、输入无效值时脚本无响应或抛出晦涩的系统错误
  • 加入异常捕获机制:用try/catch/finally块包裹所有核心操作,任意步骤执行失败都会直接输出明确的错误原因,不会出现无提示闪退的情况
  • 增加可视化状态反馈:每一步操作都配有明确的文字提示,成功、警告、错误信息用不同颜色区分,无PowerShell基础的员工也能清晰判断执行进度和结果

员工使用注意事项

  • 运行脚本前需右键点击PowerShell,选择「以管理员身份运行」后再加载执行脚本
  • 弹出Azure AD登录窗口时,需输入具备全局管理员/用户管理员权限的运维账号,不可输入被管控的普通用户账号
  • 若运行提示缺少AzureAD模块,先执行Install-Module AzureAD,按提示输入Y确认完成模块安装后再重新运行脚本
  • 所有操作执行完成后按任意键即可自动退出脚本,无需手动断开连接或关闭窗口

内容的提问来源于stack exchange,提问作者torbuck

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 05:18:18