如何简化基于AD用户title属性批量添加组成员的PowerShell命令?
优化AD用户批量添加到组的PowerShell命令
1. 匹配多个Title值的简洁写法
针对需要匹配30个不同title的场景,不用堆砌大量-or语句,直接用-in操作符结合数组就能简化过滤逻辑:
# 把所有需要匹配的title集中放到数组里,后续增删维护更方便 $targetTitles = @("SECSCH", "SEC12", "LTOSEC", "LTO12", "剩余26个title值") # 批量筛选用户并添加到目标组 Get-ADUser -Filter {title -in $targetTitles} | Add-ADGroupMember -Identity "SDK test print color"
说明:
- 数组集中管理title值,比分散写
-or更易维护 Add-ADGroupMember可直接接收Get-ADUser输出的用户对象,无需额外提取SamAccountName,执行效率更高
2. 筛选含"custod"且排除特定location的用户
原命令的逻辑可以合并简化,用-like匹配包含关键字的title,再用-notin一次性排除多个location值:
Get-ADUser -Filter {(title -like "*custod*") -and (locationNumber -notin @("85c", "42c"))} | Add-ADGroupMember -Identity "SDK test print convert"
说明:
title -like "*custod*"表示匹配title中任意位置包含"custod"的用户(如果需求是精确匹配"custod",换回-eq即可)locationNumber -notin @("85c", "42c")直接排除多个目标location,比重复写-and+-ne更简洁清晰
内容的提问来源于stack exchange,提问作者lakeek
相关产品推荐
相关产品推荐

