При попытке проадминить работающий вне домена Windows Server Core 20H2 в Server Manager вылезла ошибка:

Winrm negotiate authentication error

Это означает, что клиентский сервер (с которого выполняем управление) не смог согласовать параметры сессии WinRM с управляемым сервером. Причин может быть несколько:

  • На управляемом сервере отключена аутентификация Negotiate
  • Клиент (сервер с которого админим) не доверяет администрируемому серверу.
  • Учетные данные, с которыми осуществляется подключение, не валидны.

Диагностика управляемого сервера

Посмотрим параметры WinRM. По дефолту всё должно быть корректно и сервер не включенный в домен должен дать себя проадминить с учеткой локального админа:

winrm get winrm/config/service
winrm enumerate winrm/config/listener

В выводе этих двух команд должно быть:

Service
  ...
  Auth
    ...
    Negotiate = true
 ...
 AllowRemoteAccess = true

ну и Listener должен слушать на адресе, котоый доступен клиенту.

Диагностика управляющего сервера

На управляющем сервере важно убедиться, что не введенный в домен сервер прописан в Trusted Hosts:

Get-Item WSMan:\localhost\Client\TrustedHosts | select name,value | format-list

Очень важно, что в списке Trusted Hosts сервер должен быть прописан с DNS-суффиксом. В моем случае DHCP сервер выдавал управляемому серверу суффикс .lan и до тех пор, пока я не прописал сервер в Trusted Hosts с этим суффиксом подключиться не удавалось.

Добавление управляемомго сервера в Trusted Hosts

Это актуально, если серверы не входят в один домен. В пределах домена, как правило, серверы доверяют друг другу.
На управляющем сервере запускаем powershell с правами администратора и добавляем хост в доверенные:

Set-Item wsman:\localhost\Client\TrustedHosts "computer_name" -Concatenate -Force

И теперь прописываем учетные данные для доступа к этому хосту:

cmdkey /add:computer_name /user:Administrator /pass:SUPERPASSWORD

не работает Computer Management

Если в консоли Server Manager хост Online, но Computer Management не работает, то скорее всего виноват Firewall.
Из консоли Server Manager запускаем на удаленном хосте сессию powershell и отключаем Firewall:

Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled False

Удаленный доступ

Разрешим подключение по RDP (хотя там будет доступен только cmd и powershell):

Set-ItemProperty -Path 'HKLM:System\CurrentControlSet\Control\Terminal Server' -name "fDenyTSConnections" -value 0

Ну и дадим разрешение на firewall (если он еще не отклбчен):

Enable-NetFirewallRule -DisplayGroup "Remote Desktop"
Enter your comment. Wiki syntax is allowed:
 
  • ms_windows_ms_sql/windows_server_core_winrm_negotiate_authentication_error.txt
  • Last modified: 2021/05/18 10:41
  • by admin