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

求助:2016 Core服务器远程PSSession中AD模块需显式凭据才能运行

我之前处理过类似的服务器迁移问题,结合你的描述,这大概率是PowerShell远程双跳身份验证的问题——简单来说,就是你从本地远程连接到2016 Core服务器后,你的身份凭据没办法自动传递到AD域控制器(也就是“第二跳”),而2012R2的默认配置可能宽松一些,允许了这种隐式的身份传递。下面给你拆解根源和可行的解决办法:

问题根源

当你通过Enter-PSSession连接到新服务器时,你的本地凭据只会被用来验证你和新服务器之间的会话,但默认不会被传递给AD服务器。这是微软为了安全设计的限制,2016 Core的安全策略比2012R2更严格,所以这个问题就显现出来了。而显式指定凭据相当于直接用那个账号去访问AD,绕开了身份传递的环节,所以能正常运行。

解决方案

1. 配置Kerberos约束委派(推荐长期方案)

这是最规范、最安全的解决方式,让你的2016 Core服务器被允许向AD服务委派身份:

  • 打开Active Directory用户和计算机控制台,找到你的2016 Core服务器对象
  • 右键点击服务器→属性→切换到委派标签页
  • 选择「信任此计算机以委派到指定服务」,然后点击添加按钮
  • 在弹出的窗口中点击「用户或计算机」,输入你的域控制器名称并确认
  • 在“可用服务”列表里找到ldap和kerberos这两个服务(AD的核心服务),添加进去
  • 保存配置后,要么重启2016 Core服务器,要么等待AD复制生效(一般15-30分钟)
    之后再远程连接执行Get-ADUser这类命令,就不需要显式指定凭据了。

2. 用CredSSP身份验证(临时/测试方案)

如果只是临时需要解决问题,或者不想动AD配置,可以用CredSSP允许身份传递(注意:这个方式会把凭据缓存到远程服务器,安全性略低,不建议长期用):

  • 在你发起远程会话的本地机器上运行:
    Enable-WSManCredSSP -Role Client -DelegateComputer "newservername"
    
  • 在2016 Core服务器上运行:
    Enable-WSManCredSSP -Role Server
    
  • 之后用CredSSP身份验证发起远程会话:
    Enter-PSSession newservername -Authentication CredSSP -Credential (Get-Credential)
    

这样在会话里执行AD模块命令时,你的凭据会被传递到AD服务器,就能正常运行了。

3. 导入本地凭据到远程会话(临时应急方案)

如果上面两种方式都暂时没法操作,还可以手动把你的凭据导入到远程会话里:

  • 本地先导出凭据(注意:这个XML文件包含明文加密的凭据,用完一定要删除):
    $cred = Get-Credential
    $cred | Export-Clixml -Path "C:\temp\my_ad_cred.xml"
    
  • 把这个XML文件复制到2016 Core服务器的某个目录下,然后在远程会话里导入:
    $cred = Import-Clixml -Path "D:\temp\my_ad_cred.xml"
    # 可以把凭据设为AD模块的默认凭据
    Set-ADServerSettings -Credentials $cred
    

之后执行AD命令就会默认用这个凭据,不需要每次都指定。

验证配置

配置完成后,远程连接到2016 Core服务器,执行Get-ADUser <你的域用户名>,如果不需要加-Credential参数就能返回用户信息,说明配置生效了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:06:35