Я пытаюсь подключиться к удаленному серверу Win2008R2, не присоединенному к домену, с помощью PS с хоста Win8 (та же подсеть, это локальная виртуальная машина). Пробовал все, что смог найти, ничего не работает.
СЕРВЕР:
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
На стороне клиента
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
Ваша проблема, обнаруженная в одном из этих сообщений об ошибке:
Если схема проверки подлинности отличается от Kerberos или клиентский компьютер не присоединен к домену, необходимо использовать транспорт HTTPS или добавить конечный компьютер в параметр конфигурации TrustedHosts.
По сути, вам нужно либо настроить WinRM на использование HTTPS (а не HTTP по умолчанию) или добавьте машину, с которой вы подключаетесь, в качестве доверенного хоста на машине, к которой вы подключаетесь.
Моя проблема была связана с экземпляром, размещенным в AWS.
Мне пришлось изменить правило брандмауэра, чтобы разрешить 5985 для всех профилей и любого удаленного адреса
New-NetFirewallRule -Name PsRemotingHttp -Direction Inbound -Action Allow -Protocol tcp -LocalPort 5985 -DisplayName PsRemotingHttp
Я понял это, когда запустил test-wsman:
«По умолчанию исключение брандмауэра WinRM для общедоступных профилей ограничивает доступ к удаленным компьютерам в той же локальной подсети».
Наконец-то я заставил свой работать ... где 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>
После нескольких месяцев этой проблемы для меня оказалось, что мне нужно добавить как IP-адрес удаленного сервера, так и его DNS-имя к доверенным узлам. Просто добавить IP было недостаточно!