Назад | Перейти на главную страницу

psremoting и credssp аутентификация на localhost

У меня две машины А и 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. Ни один из них не позволил мне начать новую сессию с компьютера. А обратно к компьютеру А.

Итак, суть моего вопроса:

  1. Можете ли вы делегировать учетные данные credssp на localhost?
  2. если нет, есть ли способ создать pssession, который позволит мне по-прежнему войти в sharepoint в этом сеансе (т.е. передать учетные данные дальше)?
  3. Худший случай: мне придется переписать свой сценарий.

Подключение к локальному компьютеру должно работать нормально. Однако, просто сделав быструю попытку, мне пришлось использовать имя локального компьютера, чтобы иметь возможность подключиться, вместо 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 конфигурации, а также добавьте имя компьютера в список имен компьютеров в этой политике. После этого изменения приведенный выше код работал нормально даже на компьютере, не присоединенном к домену.