У меня две машины А и B.
оба имеют: psremoting включен, credssp работает как клиент, так и сервер.
от машины А Я могу создать новую сессию для B с участием -Authentication credssp
от машины B Я могу создать новую сессию для А с участием -Authentication credssp
На данный момент все работает нормально. Моя проблема в том, что у меня есть сценарий, который запускается на компьютере. А и начать новую сессию на обоих А и B и перемещать некоторые файлы (вещи sharepoint - совсем другое дело). Написанный мною сценарий изначально запускался с внешнего компьютера, поэтому в нем есть код, который удаленно загружается в обе системы. Но теперь скрипт запускается с компьютера А и хоть убей, я не могу заставить credssp работать на localhost.
Я пробовал установить -delegatecomputer
(для клиента enable-wsmancredssp -role) и -computername
(для new-pssession -authentication credssp) на любой из .
, localhost
, или 127.0.0.1
. Ни один из них не позволил мне начать новую сессию с компьютера. А обратно к компьютеру А.
Итак, суть моего вопроса:
Подключение к локальному компьютеру должно работать нормально. Однако, просто сделав быструю попытку, мне пришлось использовать имя локального компьютера, чтобы иметь возможность подключиться, вместо localhost (предполагая, что это связано с NTLM против Kerberos). Так что выполнение следующих команд (на компьютере с Windows Server 2008 R2 с PowerShell 2) меня устроило:
Enable-WSManCredSSP -Role Server Enable-WSManCredSSP -Role Client -DelegateComputer MyComputerNameHere $session = New-PSSession -ComputerName MyComputerNameHere -Authentication Credssp -Credential (Get-Credential)
Однако, чтобы заставить его работать на компьютере, не присоединенном к домену (на компьютере с Windows 8.1 с PowerShell 4), мне также пришлось внести изменение в групповую политику (что было упомянуто в сообщении об ошибке). Мне нужно было сделать конфигурацию, чтобы включить Computer Configuration -> Administrative Templates -> System -> Credentials Delegation -> Allow Delegating Fresh Credentials with NTLM-only Server Authentication
конфигурации, а также добавьте имя компьютера в список имен компьютеров в этой политике. После этого изменения приведенный выше код работал нормально даже на компьютере, не присоединенном к домену.