Сбой удаленного сеанса PS на не доменном сервере

10

Я пытаюсь подключиться к удаленному серверу Win2008R2, не подключенному к домену, используя PS с хоста Win8 (та же подсеть, это локальная виртуальная машина). Перепробовал все что смог найти, ничего не работает.

SERVER:

PS C:\Users\Administrator> winrm quickconfig
PS C:\Users\Administrator> enable-psremoting

КЛИЕНТ:

PS C:\scripts> $cred = get-credential -username "administrator" -message "Enter password"

PS C:\scripts> $sess = new-pssession -computername 10.10.106.2 -credential $cred -authentication default
new-pssession : [10.10.106.2] Connecting to remote server 10.10.106.2 failed with the following error message : The
WinRM client cannot process the request. If the authentication scheme is different from Kerberos, or if the client
computer is not joined to a domain, then HTTPS transport must be used or the destination machine must be added to the
TrustedHosts configuration setting. Use winrm.cmd to configure TrustedHosts. Note that computers in the TrustedHosts
list might not be authenticated. You can get more information about that by running the following command: winrm help
config. For more information, see the about_Remote_Troubleshooting Help topic.
At line:1 char:9
  + $sess = new-pssession -computername 10.10.106.2 -credential $cred -authenticatio ...
  + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [New-PSSession], PSRemotingTransportException
    + FullyQualifiedErrorId : ServerNotTrusted,PSSessionOpenFailed

PS C:\scripts> winrm set winrm/config/client '@{TrustedHosts="10.10.106.2"}'
WSManFault
Message = The client cannot connect to the destination specified in the request. Verify that the service on the dest
ination is running and is accepting requests. Consult the logs and documentation for the WS-Management service running o
n the destination, most commonly IIS or WinRM. If the destination is the WinRM service, run the following command on the
destination to analyze and configure the WinRM service: "winrm quickconfig".
Error number:  -2144108526 0x80338012
The client cannot connect to the destination specified in the request. Verify that the service on the destination is run
ning and is accepting requests. Consult the logs and documentation for the WS-Management service running on the destinat
ion, most commonly IIS or WinRM. If the destination is the WinRM service, run the following command on the destination t
o analyze and configure the WinRM service: "winrm quickconfig".

PS C:\scripts> $sess = new-pssession -computername 10.10.106.2 -credential $cred -usessl
new-pssession : [10.10.106.2] Connecting to remote server 10.10.106.2 failed with the following error message : WinRM
cannot complete the operation. Verify that the specified computer name is valid, that the computer is accessible over
the network, and that a firewall exception for the WinRM service is enabled and allows access from this computer. By
default, the WinRM firewall exception for public profiles limits access to remote computers within the same local
subnet. For more information, see the about_Remote_Troubleshooting Help topic.
At line:1 char:9
  + $sess = new-pssession -computername 10.10.106.2 -credential $cred -usessl
  +         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [New-PSSession], PSRemotin   gTransportException
    + FullyQualifiedErrorId : WinRMOperationTimeout,PSSessionOpenFailed

Да, и RDP прекрасно работает между этими двумя хостами с одинаковыми учетными данными.

Даже это работает:

PS C:\scripts> Get-WinEvent -computername 10.10.106.2 -credential $cred
Dendory
источник

Ответы:

17

На стороне клиента

winrm quickconfig
winrm set winrm/config/client '@{TrustedHosts="Computer1,Computer2"}'

На стороне сервера

Enable-PSRemoting -Force
winrm quickconfig

для https

winrm create winrm/config/Listener?Address=*+Transport=HTTPS @{Hostname="_";CertificateThumbprint="_"}

для http

winrm create winrm/config/Listener?Address=*+Transport=HTTP

Тест с

Test-WsMan ComputerName
Test-WsMan ComputerName -UseSSL

Изменить: Установить TrustedHosts с PowerShell

Или с PowerShell (в качестве администратора)

Set-Item -Path WSMan:\localhost\Client\TrustedHosts -Value "Computer1,Computer2"

И проверить (не нужен админ для этого)

Get-Item WSMan:\localhost\Client\TrustedHosts
dhcgn
источник
5

Ваша проблема, как указано в одном из этих сообщений об ошибках:

Если схема аутентификации отличается от Kerberos, или если клиентский компьютер не присоединен к домену, необходимо использовать транспорт HTTPS или конечный компьютер должен быть добавлен в параметр конфигурации TrustedHosts.

По сути, вам нужно либо настроить WinRM на использование HTTPS (а не HTTP по умолчанию), либо добавить компьютер, к которому вы подключаетесь, в качестве доверенного хоста на компьютере, к которому вы подключаетесь.

HopelessN00b
источник
Я не могу использовать эту команду, так как на сервере нет действующего сертификата. Как вы видите в моем первоначальном вопросе, я попытался добавить компьютер к доверенным хостам на стороне клиента. Нужно ли делать то же самое на стороне сервера?
Дендори
RDP на удаленный сервер и установите Trusted Hosts из вашего сеанса RDP, если вы хотите именно так. Я думаю, что проще и намного лучше просто установить WinRM / WinRS для использования HTTPS вместо HTTP на всех компьютерах, которыми я управляю (по многим причинам, а не только по этой конкретной проблеме), но я думаю, что это ваш вызов.
HopelessN00b
Да, но PS HTTPS очевидно требует реального сертификата (не самоподписанного) вместе с публичным DNS-именем. Почему он не использует то же шифрование, что и RDP? Для этого не нужно ничего особенного. Это локальная виртуальная машина для разработки, и у нее нет другого выбора, она не может получить для нее публичный центр сертификации.
Дендори
winrm set winrm/config/client '@{TrustedHosts="10.10.106.1"}'работал на сервере, но я все еще получаю те же сообщения об ошибках на моем клиенте, он все равно не подключается.
Дендори
1
@Dendory WinRM через HTTPS прекрасно работает с сертификатом, выданным внутренним центром сертификации, при условии, что у вас правильно настроены машины, чтобы доверять выдавшему ЦС. Для этого не требуется, чтобы у машины было допустимое внешнее DNS-имя, просто вы используете его DNS-имя и сертификат также. Если это не вариант, по какой-то причине вам придется надеяться, что придет кто-то еще, кто может помочь вам заставить его работать только с записью «Надежные хосты» (записи?) - я просто так не делаю, потому что это слишком большая боль в заднице, и, похоже, она не работает надежно для меня.
HopelessN00b
1

Моя проблема была для экземпляра, размещенного в AWS.

  • Мне пришлось открыть 5985 в группе безопасности экземпляра
  • Мне пришлось изменить правило брандмауэра, чтобы разрешить 5985 для всех профилей и любого удаленного адреса

    New-NetFirewallRule -Name PsRemotingHttp -Directory Inbound -Alow Allow -Protocol tcp -LocalPort 5985 -DisplayName PsRemotingHttp

Я решил это, когда запустил test-wsman:

«По умолчанию исключение брандмауэра WinRM для общедоступных профилей ограничивает доступ к удаленным компьютерам в одной локальной подсети».

АВВИ
источник
0

Я наконец-то заставил мою работать ... где xxx.xxx.xxx.xxx - это IP-адрес.

PS C:\Users\Administrator> winrm quickconfig
WinRM service is already running on this machine.
WinRM is already set up for remote management on this computer.
PS C:\Users\Administrator> Enable-PSRemoting -Force
WinRM is already set up to receive requests on this computer.
WinRM is already set up for remote management on this computer.
PS C:\Users\Administrator> winrm set winrm/config/client '@{TrustedHosts="xxx.xxx.xxx.xxx"}'
Client
    NetworkDelayms = 5000
    URLPrefix = wsman
    AllowUnencrypted = false
    Auth
        Basic = true
        Digest = true
        Kerberos = true
        Negotiate = true
        Certificate = true
        CredSSP = false
    DefaultPorts
        HTTP = 5985
        HTTPS = 5986
    TrustedHosts = xxx.xxx.xxx.xxx

PS C:\Users\Administrator> Enter-PSSession  -ComputerName xxx.xxx.xxx.xxx -Credential "~\Administrator"
[xxx.xxx.xxx.xxx]: PS C:\Users\Administrator\Documents>
jimdenver
источник
0

После нескольких месяцев этой проблемы оказалось, что мне нужно добавить как IP-адрес удаленного сервера, так и его DNS-имя к доверенным хостам. Простого добавления IP было недостаточно!

Рейчел Николс
источник