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

如何在Azure AD中自动禁用45天、删除90天未登录用户?

自动化处理Azure AD中未登录用户的方案

针对自动禁用45天未登录用户、删除90天未登录/已禁用用户的需求,可通过Microsoft Graph PowerShell结合Azure Automation实现每日夜间任务,具体方案如下:

核心逻辑

  • 禁用规则:筛选启用状态且LastSignInDateTime早于当前日期45天前的用户,执行禁用操作
  • 删除规则:筛选已禁用状态,或LastSignInDateTime早于当前日期90天前的用户,执行删除操作(删除不可逆,需谨慎)

PowerShell脚本实现(基于Microsoft Graph)

1. 禁用45天未登录用户脚本

# 连接Microsoft Graph(自动化场景建议用托管身份,无需手动登录)
Connect-MgGraph -Scopes "User.ReadWrite.All"

# 计算45天前的UTC时间戳
$cutoffDate = (Get-Date).AddDays(-45).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ')

# 查询符合条件的启用状态用户
$targetUsers = Get-MgUser -Filter "accountEnabled eq true and lastSignInDateTime le '$cutoffDate'" -Select Id, DisplayName, UserPrincipalName

# 批量禁用
foreach ($user in $targetUsers) {
    Write-Output "禁用用户: $($user.DisplayName) ($($user.UserPrincipalName))"
    Update-MgUser -UserId $user.Id -AccountEnabled:$false
}

2. 删除90天未登录/已禁用用户脚本

# 连接Microsoft Graph
Connect-MgGraph -Scopes "User.ReadWrite.All"

# 计算90天前的UTC时间戳
$cutoffDate = (Get-Date).AddDays(-90).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ')

# 查询符合条件的用户:已禁用 或 90天未登录
$targetUsers = Get-MgUser -Filter "(accountEnabled eq false) or (lastSignInDateTime le '$cutoffDate')" -Select Id, DisplayName, UserPrincipalName, AccountEnabled

# 批量删除(建议先导出备份,再移除-Confirm:$false执行实际删除)
foreach ($user in $targetUsers) {
    Write-Output "删除用户: $($user.DisplayName) ($($user.UserPrincipalName))"
    Remove-MgUser -UserId $user.Id -Confirm:$false
}

自动化部署(每日夜间执行)

  • 创建Azure Automation账户:在Azure门户中创建Automation账户,启用系统托管身份
  • 导入Graph模块:在Automation账户的「模块」中导入Microsoft.Graph.Users模块
  • 配置权限:给Automation账户的系统托管身份分配User.ReadWrite.All的Microsoft Graph应用权限
  • 创建Runbook:将上述脚本分别创建为PowerShell Runbook(或合并为一个Runbook执行两个任务)
  • 设置计划触发器:为Runbook添加每日夜间的计划(如凌晨2点),按需求执行

关键注意事项

  • 数据备份:删除操作不可逆,正式执行前务必导出目标用户列表备份,可在脚本中添加Export-Csv命令实现
  • 排除特权账户:建议在Filter中排除全局管理员、Exchange管理员等特权账户,例如添加and not (assignedRoles/any(r:r/id eq '62e90394-69f5-4237-9190-012177145e10'))(全局管理员角色ID)
  • 来宾用户处理:若无需处理来宾用户,可在Filter中添加userType eq 'Member'
  • 日志监控:在Automation中启用作业日志,或集成Azure Monitor,追踪任务执行情况

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 02:20:48