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

AD PowerShell:通过UserPrincipalName批量移除组内用户

优化批量从AD安全组移除用户的PowerShell代码

极简优化版本(砍掉中间文件)

直接去掉多余的CSV写入/读取步骤,通过管道一步完成用户查询与移除:

$CSV = 'C:\Temp\users.csv'
$GROUP = 'SecurityGroup'

Import-CSV -Path $CSV | ForEach-Object {
    # 通过UPN获取AD用户对象,直接传给移除组成员命令
    Get-ADUser -Filter "UserPrincipalName -eq '$($_.UserPrincipalName)'" |
        Remove-ADGroupMember -Identity $GROUP -Members $_ -Confirm:$false
}

优化点说明

  • 彻底删除了中间userssam.csv的IO操作,减少磁盘读写开销,流程更简洁
  • Remove-ADGroupMember的-Members参数支持直接接收Get-ADUser返回的AD用户对象,不需要额外提取SAMAccountName,cmdlet会自动识别对象的标识属性
  • 用$($_.UserPrincipalName)子表达式语法,避免字符串拼接时的语法错误

进阶批量处理版本(适合大量用户)

如果要处理的用户数量较多,建议先批量查询所有用户,再一次性移除,减少对AD服务器的请求次数:

$CSV = 'C:\Temp\users.csv'
$GROUP = 'SecurityGroup'

# 批量获取所有存在的AD用户对象,跳过找不到的用户
$targetUsers = Import-CSV -Path $CSV | ForEach-Object {
    Get-ADUser -Filter "UserPrincipalName -eq '$($_.UserPrincipalName)'" -ErrorAction SilentlyContinue
}

# 仅当找到有效用户时执行移除操作
if ($targetUsers) {
    Remove-ADGroupMember -Identity $GROUP -Members $targetUsers -Confirm:$false
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 04:12:50