Powershell CREDSSP Проблемы - PullRequest
0 голосов
/ 19 мая 2018

Я пытаюсь использовать CREDSSP на новом сервере (сервер C)

Я успешно настроил credssp на двух других серверах.(От сервера A до сервера B)

Сейчас я пытаюсь подключиться с сервера A к серверу C с помощью CREDSSP, но независимо от того, что я делаю, я получаю следующую ошибку:

[SERVER_C.domain.edu] Соединение с удаленным сервером SERVER_C.domain.edu завершилось неудачно со следующим сообщением об ошибке: Доступ запрещен.Для получения дополнительной информации см. Раздел справки about_Remote_Trou Troubleshooting.+ CategoryInfo: OpenError: (SERVER_C.domain.edu:String) [], PSRemotingTransportException + FullyQualifiedErrorId: AccessDenied, PSSessionStateBroken

Это мой запрос, который отлично работает с сервера A на сервер B:

# Setting the Credentials to be used to sign into the Server B. 
    $pass = ConvertTo-SecureString "Password" -asplaintext -force
    $mycred = new-object -typename System.Management.Automation.PSCredential -argumentlist "domain\user.service",$pass
#
#
# The Remote Execution Command. Fully Qualified Domain name is critical since we are using Credssp.
# Credssp is being used to resolve an issue with a double hop authentication issue. Other steps setup on each computer had to be completed before Credssp would work
   Invoke-Command -ComputerName SERVER_B.domain.edu -command { C:\helloWorld.ps1 } -Authentication Credssp  -Credential $mycred

Я дважды проверил все, что могу придумать, между Сервером C (Новый Сервер) и Сервером B (Старый Сервер), и я не могу найти причину, по которой я получаю ошибку.

Я знаю, что если я возьмучасть CREDSSP, скрипт работает, за исключением случаев, когда задействован двойной переход.Таким образом, Сервер определенно подключается.

Я выполнил следующие команды:

Enable-psremoting

Set-ExecutionPolicy -Scope localMachine -ExecutionPolicy RemoteSigned

Enable-WSManCredSSP -Role Client -DelegateComputer '*.reskit.org' –Force 
Enable-WSManCredSSP -Role Server –Force

wsman

Также выполнил следующие действия: Используйте gpedit.msc и посмотрите следующую политику: Конфигурация компьютера -> Административные шаблоны -> Система -> Делегирование полномочий -> Разрешить делегирование новых полномочий.Убедитесь, что он включен и настроен с именем участника-службы, соответствующим целевому компьютеру.Например, для имени целевого компьютера «myserver.domain.com» имя участника-службы может быть одним из следующих: WSMAN / myserver.domain.com или WSMAN / *. Domain.com.Для получения дополнительной информации см. Раздел справки about_Remote_Trou Troubleshooting.

И, как я уже говорил, я знаю, что сервер A настроен правильно, потому что я запускаю сценарий выше на сервере B. без проблем.

Любые предложения действительно приветствуются.

Единственная мысль, которая у меня возникла, заключается в том, что сервер A и B работают под управлением Powershell 3, а сервер C работает под управлением Powershell 5

.

1 Ответ

0 голосов
/ 22 мая 2018

Я заметил, что команда Enable-WSManCredSSP -Role Client использует * .reskit.org вместо * .domain.eu. (?)

Мне не совсем ясно, какие команды выполнялись на сервереили на клиента, но с первого взгляда все в порядке.Недавно я настроил credssp также для решения проблемы двойного прыжка следующим образом:

На сервере:

Enable-WSManCredSSP -Role Server -Force

Get-WSManCredSSP показывает: машина не настроенаразрешить делегировать новые полномочия.Этот компьютер настроен на получение учетных данных с удаленного клиентского компьютера.

На клиенте:

winrm quickconfig
Enable-WSManCredSSP -role client *.mydomain.com

Get-WSMancredSSP показывает: Машина настроена на разрешение делегированиясвежие учетные данные для следующих целей: wsman / *. mydomain.com.Этот компьютер не настроен на получение учетных данных с удаленного клиентского компьютера.

Мой клиентский скрипт запускает явный удаленный сеанс с помощью:

$session = New-PSSession -Computer $computerName -Credential $credential -Authentication Credssp
...