psremoting 和 credssp 身份验证到本地主机

psremoting 和 credssp 身份验证到本地主机

我有两台机器A

两者都具有:启用 psremoting,credssp 同时启用客户端和服务器。

从机器A我可以创建一个新的 pssession 来-Authentication credssp

从机器我可以创建一个新的 pssession 来A-Authentication credssp

目前一切正常。我的问题是我有一个可以在计算机上运行的脚本A并在两者上开始新的A并移动一些文件(sharepoint 的东西是完全不同的问题)。我编写的脚本最初是从外部计算机运行的,因此它有远程进入两个系统的代码。但现在脚本是从计算机运行的A并且就我而言,我无法让 credssp 在本地主机上运行。

我尝试将-delegatecomputer(对于 enable-wsmancredssp -role client)和-computername(对于 new-pssession -authentication credssp)设置为.localhost或中的任意一个127.0.0.1。这些都不允许我从计算机启动新的 pssessionA返回电脑A

所以我的问题的核心是:

  1. 您能将 credssp 凭证委托给 localhost 吗?
  2. 如果没有,是否有办法创建一个 pssession,使我仍然可以在该会话内登录到 sharepoint(即进一步传递凭据)?
  3. 最糟糕的情况:我必须重写我的脚本。

答案1

连接到本地计算机应该没问题。但是,我自己做了一个快速尝试,我不得不使用本地计算机的计算机名称才能连接,而不是 localhost(猜测这与 NTLM 与 Kerberos 有关)。因此,运行以下命令(在装有 PowerShell 2 的 Windows Server 2008 R2 计算机上)对我来说没问题:

启用 WSManCredSSP -角色服务器
启用-WSManCredSSP-角色客户端-DelegateComputer MyComputerNameHere
$session = New-PSSession -计算机名称 MyComputerNameHere -身份验证 Credssp -凭据 (获取凭据)

但是,为了使其在未加入域的计算机(在装有 PowerShell 4 的 Windows 8.1 计算机上)上运行,我还必须进行组策略更改(在提供的错误消息中提到了这一点)。我需要进行的配置是启用配置Computer Configuration -> Administrative Templates -> System -> Credentials Delegation -> Allow Delegating Fresh Credentials with NTLM-only Server Authentication,并将计算机名称添加到该策略中的计算机名称列表中。进行此更改后,即使在未加入域的计算机上,上述代码也能正常工作。

相关内容