如何通过组策略或其他方式将域内100台电脑的域用户改为本地标准用户?
Hey,针对你提到的100台域内电脑要把域用户从本地管理员降到标准用户的需求,组策略肯定是最高效的批量解决方案,另外我也给你整理了几个备选方法,具体操作如下:
这是域环境下批量管控的首选方式,配置一次就能自动应用到所有目标电脑:
步骤1:创建并链接GPO
打开组策略管理控制台(GPMC),找到包含所有100台目标电脑的OU(如果还没有统一的OU,建议先把这些电脑移到同一个OU里,方便管理)。右键该OU,选择「创建GPO并在此处链接」,给GPO起个直观的名字,比如「移除普通域用户本地管理员权限」。步骤2:配置管理员组成员限制
右键刚创建的GPO选择「编辑」,在组策略编辑器里导航到:计算机配置 > 策略 > Windows 设置 > 安全设置 > 本地用户和组 > 组 > 管理员
右键「管理员」组选择「属性」,勾选「定义这个策略设置」,然后点击「添加用户或组」:- 首先,确保保留本地Administrator账户和Domain Admins组(或者你需要的其他管理员组),绝对不能把所有管理员都移除,否则会导致无法登录管理电脑。
- 接着,把之前添加到管理员组的普通域用户/域用户组(比如
Domain Users)从列表中删除。
步骤3:测试并生效
先找一台测试电脑,运行命令gpupdate /force强制刷新组策略,重启电脑后用普通域用户登录,通过net localgroup administrators命令或者「控制面板 > 用户账户」检查权限是否已调整为标准用户。
测试没问题后,策略会在90分钟内自动同步到所有目标电脑,也可以远程批量执行gpupdate /force加速生效。
如果组策略暂时无法使用,或者需要临时处理,这些方法也能解决问题:
PowerShell远程脚本批量处理
用域管理员权限运行以下脚本,可以批量移除指定OU内电脑的域用户管理员权限:# 替换为你的目标OU路径 $targetOU = "OU=你的电脑OU,DC=yourdomain,DC=com" $computers = Get-ADComputer -Filter * -SearchBase $targetOU foreach ($computer in $computers) { $pcName = $computer.Name try { Invoke-Command -ComputerName $pcName -ScriptBlock { $adminGroup = [ADSI]"WinNT://./Administrators,group" $members = $adminGroup.psbase.Invoke("Members") | ForEach-Object { $_.GetType().InvokeMember("Name", 'GetProperty', $null, $_, $null) } # 保留需要的管理员账户/组,移除其他 $keepMembers = @("Administrator", "Domain Admins") foreach ($member in $members) { if ($member -notin $keepMembers) { $adminGroup.Remove("WinNT://$env:USERDOMAIN/$member") Write-Host "已从$env:COMPUTERNAME管理员组移除:$member" } } } -ErrorAction Stop } catch { Write-Warning "处理$pcName失败:$_" } }注意:目标电脑需要开启WinRM服务(域环境默认已开启),且运行脚本的账户要有域管理员权限。
批量部署工具执行命令
如果你有PDQ Deploy、SCCM这类批量管理工具,可以创建一个部署任务,直接执行命令:net localgroup administrators "Domain Users" /delete这个命令会直接把
Domain Users组从本地管理员组移除,适合确认该组是唯一需要移除的情况,执行前建议先在测试机验证。手动修改(不推荐100台场景)
单台电脑可以通过「计算机管理 > 本地用户和组 > 组 > 管理员」手动移除域用户,但100台的话效率极低,只适合临时处理个别电脑。
内容的提问来源于stack exchange,提问作者Maxim Baran

