Аутентификация psremoting и credssp для локального хоста

У меня есть две машины A и B.

оба имеют: psremoting включен, credssp включается как клиент, так и сервер.

из машины A я могу создать новую pssession для B с -Authentication credssp

из машины B я могу создать новую pssession для A с -Authentication credssp

На данный момент все работает нормально. Моя проблема в том, что у меня есть скрипт, который будет запускаться на компьютере A, запускать новую pssession на A и B и перемещать некоторые файлы (вещи с sharepoint, это совершенно другое дело). Сценарий, который я написал, изначально запускался с внешнего компьютера, поэтому в нем есть код, который удаленно работает в обеих системах. Но теперь сценарий запускается с компьютера А, и я не могу заставить себя работать на localhost.

Я пробовал настройку -delegatecomputer (для клиента enable-wsmancredssp -role) и -computername (для новой-pssession -authentication credssp) к любому из ., localhost, или же 127.0.0.1, Ни один из них не позволил мне начать новый сеанс с компьютера А обратно на компьютер А.

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

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

1 ответ

Подключение к локальному компьютеру должно работать просто отлично. Однако, просто сделав небольшую попытку, мне пришлось использовать имя компьютера локального компьютера, чтобы иметь возможность подключиться, вместо localhost (предположив, что это связано с NTLM против Kerberos). Поэтому выполнение следующих команд (на компьютере с Windows Server 2008 R2 с PowerShell 2) отлично для меня:

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

Другие вопросы по тегам