powershell是批量向windows本地用户组添加成员最直接可控的方式,支持单机与远程批量操作:单机用get-content结合add-localgroupmember;远程需启用winrm、配置凭据,并通过invoke-command执行,同时支持域用户/组添加及结果验证。
powershell 是批量向 windows 本地用户组添加成员最直接、可控的方式,无需逐台手动操作,也避免图形界面的繁琐和遗漏。
确认目标组与用户存在性
本地组名必须准确(如 Administrators、Remote Desktop Users、Users),大小写不敏感但拼写不能错;待添加的用户或组需已存在于本机(如本地账户)或域中(如 DOMAIN\user 或 DOMAIN\group)。若用户不存在,Add-LocalGroupMember 会报错并跳过,建议先用 Get-LocalUser 或 Get-ADUser 验证。
基础批量添加命令(单机)
以管理员身份运行 PowerShell,执行以下命令即可将一批用户名加入指定本地组:
Get-Content .\users.txt | ForEach-Object { Add-LocalGroupMember -Group "Administrators" -Member $_ -ErrorAction SilentlyContinue }
-
users.txt文件每行一个用户名(支持本地账户名、域用户DOMAIN\user、域组DOMAIN\group) -
-ErrorAction SilentlyContinue可忽略个别失败(如用户不存在),继续处理后续项 - 成功后无输出;如需反馈,可加
Write-Host "$_ added"或改用-Verbose
跨多台电脑批量添加(远程)
需提前在目标主机启用 WinRM,并准备好凭据:
启用 WinRM(目标机上以管理员运行):
winrm quickconfig
或更安全配置(HTTPS):winrm set winrm/config/service @{AllowUnencrypted="false";Auth="Kerberos"}准备服务器列表
servers.txt和加密凭据文件(如admin.cred):
$servers = Get-Content .\servers.txt
$cred = Import-Clixml .\admin.cred
Invoke-Command -ComputerName $servers -Credential $cred -ScriptBlock {
param($members)
foreach ($m in $members) {
if (Get-LocalUser -Name $m -ErrorAction SilentlyContinue) {
Add-LocalGroupMember -Group "Administrators" -Member $m -ErrorAction SilentlyContinue
} else {
Write-Warning "User '$m' not found on $($env:COMPUTERNAME)"
}
}
} -ArgumentList (Get-Content .\users.txt)
注意事项与常见问题
- 域用户/组添加到本地组时,需确保目标计算机能解析该域(网络连通、DNS 正常、信任关系有效)
-
Add-LocalGroupMember不支持嵌套组自动展开(例如添加一个域组,其成员不会自动获得该本地组权限,仅该组本身成为成员) - 若提示“拒绝访问”,检查运行脚本的账户是否对目标本地组有修改权限(通常需是本地管理员)
- 添加重复成员不会报错,也不会覆盖,属于幂等操作
验证结果
添加完成后,可用以下命令快速核对:
Get-LocalGroupMember -Group "Administrators" | Where-Object ObjectClass -eq 'User' | Select-Object Name, PrincipalSource
PrincipalSource 列会显示 ActiveDirectory(域用户)、Local(本地用户)或 MicrosoftAccount 等来源,便于确认归属。











