将AD组加入服务器本地管理员组后远程PowerShell执行报错:拒绝访问
解决AD组加入本地管理员后远程PowerShell脚本拒绝访问的问题
兄弟,这个坑我之前踩过!把AD组加到本地管理员组后远程跑脚本被拒,但直接加用户就好使,大概率是组权限同步延迟、WinRM授权配置或者UAC远程过滤搞的鬼,给你几个实用的解决方案:
先刷新组权限并重启相关服务
AD组的权限有时候不会立刻同步到本地,尤其是远程会话里。先在目标服务器上执行强制刷新组策略:gpupdate /force然后重启WinRM服务(远程管理的核心服务):
Restart-Service WinRM -Force如果还是不行,干脆重启一下服务器,确保组权限完全加载到位。
检查并配置WinRM的远程授权规则
有时候WinRM默认的配置里,没有把你的AD组加入到允许远程执行的列表里。先查看当前的授权规则:Get-PSSessionConfiguration -Name Microsoft.PowerShell | Select-Object -ExpandProperty Permission要是看不到你的AD组,就用这个命令打开权限设置窗口,手动添加组并授予权限:
Set-PSSessionConfiguration -Name Microsoft.PowerShell -ShowSecurityDescriptorUI在弹出的窗口里找到你的AD组,给它分配「完全控制」或者「执行」权限就行。
验证远程会话中的组身份
有时候远程会话没正确识别AD组的SID,导致权限没生效。你可以在远程脚本里先加一行命令,看看当前用户的组列表:whoami /groups如果你的AD组不在列表里,说明AD复制还没完成,或者本地缓存没更新,等一会儿再试,或者手动在目标服务器上用该AD组的用户登录一次本地会话,触发组缓存更新。
关闭UAC远程权限过滤
默认情况下,Windows的UAC会对远程访问的本地管理员组成员做权限过滤,导致实际拿到的是普通权限。可以通过修改注册表关闭这个限制:- 打开注册表编辑器(
regedit) - 定位到
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System - 新建一个DWORD值,命名为
LocalAccountTokenFilterPolicy,设置值为1 - 重启WinRM服务或者服务器,让设置生效
- 打开注册表编辑器(
按这个顺序试下来,基本能解决问题!
内容的提问来源于stack exchange,提问作者Aikman




