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

PowerShell无法使用-Recursive开关获取AD组成员及权限异常问题

这问题我之前在域环境排障时碰到过类似的,咱们从最常见的几个方向来拆解排查:

可能的原因及解决步骤

1. UAC权限过滤是首当其冲的排查点

域控制器默认开启了UAC的本地管理员批准模式,域管理员账号本地登录时会自动剥离高权限令牌(也就是所谓的LUA过滤)。Admin1自己登录后执行命令成功,大概率是因为他的会话令牌虽然被过滤,但用自己的凭据执行时,UAC会自动提升权限;而Admin2用Admin1的凭据时,UAC可能阻止了这个提升动作。

  • 排查/验证:让Admin2右键点击PowerShell,选择「以管理员身份运行」,再输入Admin1的凭据执行命令,看是否成功。
  • 临时解决:如果确实是UAC的问题,可临时修改DC的本地安全策略:本地策略 → 安全选项 → 用户账户控制:管理员批准模式中管理员的提升权限提示行为,改成「不提示,直接提升」(注意:这只是临时测试用,不推荐长期保持这个设置,会降低安全性)。

2. 「模拟客户端进行身份验证」权限缺失

当你在本地会话中用另一个用户的凭据执行操作时,当前登录用户(Admin2)需要具备「模拟客户端进行身份验证」的权限,否则无法模拟Admin1的身份访问AD服务。

  • 排查:在DC01上打开「本地安全策略」,依次进入本地策略 → 用户权限分配 → 模拟客户端进行身份验证,检查列表里是否包含域管理员组或者Admin2账号。
  • 解决:如果没有,添加域管理员组(或者直接添加Admin2)到这个权限列表,然后执行gpupdate /force刷新组策略,或者重启DC生效。

3. Kerberos身份验证票据问题

在DC本地跨用户执行AD命令时,可能涉及Kerberos票据的传递问题。Admin2的会话可能无法正确获取Admin1的Kerberos票据来访问AD服务。

  • 排查/验证:让Admin2在PowerShell里先执行klist purge清空当前会话的所有Kerberos票据,然后重新输入Admin1的凭据执行命令;或者强制用NTLM身份验证测试,命令改成:
    Get-ADGroupMember administrators -Credential (Get-Credential) -Server dc01 -AuthType NTLM
    
  • 解决:如果NTLM方式能成功,说明Kerberos存在问题,可检查DC的SPN注册是否正常(用setspn -L dc01查看),或者确认Admin1的账号没有被限制Kerberos票据的生成。

4. 其他小众可能性(优先级较低)

  • PowerShell执行策略:检查Admin2的执行策略是否为Restricted,执行Get-ExecutionPolicy查看,若为Restricted可临时改成RemoteSigned(Set-ExecutionPolicy RemoteSigned -Force)。
  • AD模块权限:确认Admin2能正常加载ActiveDirectory模块,执行Import-Module ActiveDirectory看是否报错,若报错检查模块文件的读取权限(默认域管理员应该具备)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 08:01:58