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

Remove-AzureADGroupMember多输入循环批量移除Azure AD组成员

Azure AD用户云组成员批量移除方案

核心调整逻辑

原脚本仅实现组查询和可视化展示,要对接批量移除能力需要做3处核心修改:

  • 给Out-GridView添加-PassThru参数,让弹窗支持选中条目后向下传递结果,默认模式下该cmdlet仅做展示不输出任何对象
  • 增加前置校验逻辑,避免用户未检索到目标用户、未选中任何组时触发无效报错
  • 遍历选中的组对象,循环调用Remove-AzureADGroupMember执行移除,单条操作失败不中断整体批量流程

完整可运行脚本

# 定义待操作的目标用户账号
$User = 'Compromised.UserAccount'
$UserToRemove = Get-AzureADUser -SearchString $User

# 校验目标用户是否存在
if (-not $UserToRemove) {
    Write-Error "未查询到匹配的用户:$User,操作终止"
    exit 1
}

# 查询用户所属的纯云安全组/分发组,弹出可视化选择窗口
$groupsToRemoveMember = $UserToRemove |
    Get-AzureADUserMembership | 
    ForEach-Object { 
        Get-AzureADObjectByObjectId -ObjectId $_.ObjectId | 
        Get-AzureADGroup | 
        Where-Object {$_.OnPremisesSecurityIdentifier -eq $null} | 
        Select-Object DisplayName, ObjectType, MailEnabled, SecurityEnabled, ObjectId 
    } |
    Out-GridView -Title "$User 所属纯云组列表 - 选中要移除成员的组后点击确认" -PassThru

# 校验是否选中待操作组
if (-not $groupsToRemoveMember) {
    Write-Host "未选中任何目标组,操作已退出"
    exit 0
}

# 循环执行成员移除操作
foreach ($targetGroup in $groupsToRemoveMember) {
    try {
        Remove-AzureADGroupMember -ObjectId $targetGroup.ObjectId -MemberId $UserToRemove.ObjectId -ErrorAction Stop
        Write-Host "操作成功:已将用户从组「$($targetGroup.DisplayName)」中移除" -ForegroundColor Green
    }
    catch {
        Write-Warning "操作失败:从组「$($targetGroup.DisplayName)」移除用户时出错,错误信息:$_"
    }
}

使用说明

  • 运行脚本前请先确认已连接Azure AD租户,可执行Connect-AzureAD完成登录认证
  • 弹出组列表窗口后,按住Ctrl可多选要操作的组,选中后点击窗口右下角确认即可触发批量移除
  • 脚本会在控制台输出每一个组的操作结果,成功项标绿、失败项输出具体错误信息,方便排查问题

内容的提问来源于stack exchange,提问作者Senior Systems Engineer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 04:12:56