Ошибка WinRM при подключении к удаленному серверу с помощью powershell [duplicate]

У вас есть разные опции:

  • Если ваш minSDK & lt; = 21, вы можете использовать getActivity(), так как это Context.
  • Если ваш minSDK будет> = 23, тогда вы можете использовать getContext().

Если вам не нужно поддерживать старые версии, перейдите к getContext().

52
задан wullxz 12 July 2011 в 15:34
поделиться

5 ответов

Сообщение об ошибке дает вам больше всего того, что вам нужно. Речь идет не только о списке TrustedHosts; он говорит, что для использования IP-адреса с использованием схемы аутентификации по умолчанию вам также необходимо использовать HTTPS (который не настроен по умолчанию) и предоставить явные учетные данные. Я могу сказать, что вы по крайней мере не используете SSL, потому что вы не использовали переключатель -UseSSL.

Обратите внимание, что SSL / HTTPS не настроен по умолчанию - это дополнительный шаг, который вам придется брать. Вы не можете просто добавить -UseSSL.

Механизм аутентификации по умолчанию - это Kerberos, и он хочет видеть имена реальных хостов, как они появляются в AD. Не IP-адреса, а не DNS-имена CNAME. Некоторые люди включат базовую аутентификацию, которая менее придирчива, но вы также должны установить HTTPS, поскольку в противном случае вы передавали бы учетные данные в открытом виде. Включить-PSRemoting настраивает только HTTP.

Добавление имен в файл hosts не будет работать. Это не проблема разрешения имен; речь идет о том, как осуществляется взаимная аутентификация между компьютерами.

Кроме того, если оба компьютера, участвующие в этом соединении, не находятся в одном домене AD, механизм аутентификации по умолчанию не будет работать. Прочтите «help about_remote_troubleshooting» для получения информации о настройке недоменной и междоменной проверки подлинности.

Из документов в http://technet.microsoft.com/en-us/library/dd347642. aspx

HOW TO USE AN IP ADDRESS IN A REMOTE COMMAND
-----------------------------------------------------
    ERROR:  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.

The ComputerName parameters of the New-PSSession, Enter-PSSession and
Invoke-Command cmdlets accept an IP address as a valid value. However,
because Kerberos authentication does not support IP addresses, NTLM
authentication is used by default whenever you specify an IP address. 

When using NTLM authentication, the following procedure is required
for remoting.

1. Configure the computer for HTTPS transport or add the IP addresses
   of the remote computers to the TrustedHosts list on the local
   computer.

   For instructions, see "How to Add a Computer to the TrustedHosts
   List" below.


2. Use the Credential parameter in all remote commands.

   This is required even when you are submitting the credentials
   of the current user.
40
ответ дан Don Jones 20 August 2018 в 10:28
поделиться
  • 1
    Спасибо Дон за ваш ответ. Это очистило большую часть моей невежественности. Я не могу проверить это сейчас, но я сделаю это. Если я все понял правильно, то все, что мне нужно сделать, это выполнить kb , чтобы настроить WinRM для прослушивания https-запросов тоже, правильно? – wullxz 12 July 2011 в 23:47
  • 2
    Yup, а также работать с списком TrustedHosts и явно предоставлять учетные данные. Вы также можете обнаружить, что вам нужно включить что-то вроде обычной проверки подлинности вместо Kerberos. – Don Jones 16 July 2011 в 15:43
  • 3
    Да, включение базовой проверки подлинности изменило проблему. К сожалению, я получил сообщение о запрете доступа после того, как я выполнил инструкции и различные руководства и инструкции. Я не знаю, почему у меня не было доступа. Учетные данные работали, когда я пытался подключиться через имя хоста. Nevermind ... Я нашел решение, которое не требует PSRemoting. Но спасибо за вашу помощь. Теперь я понимаю, что удаленный процесс стал лучше, и я думаю, что это нечто иное, чем WinRM-настройки, запрещающие мой доступ. – wullxz 17 July 2011 в 17:34
  • 4
    для меня это был ip-адрес: порт был проблемой. Я изменил на hostname: порт, и он сработал. благодаря – Sunil Buddala 14 November 2017 в 23:33

Я проверяю ваше утверждение в своей инфраструктуре, IP-адрес не является проблемой для меня:

PS C:\Users\JPB> hostname
JPBCOMPUTER
PS C:\Users\JPB> Enter-PSSession -ComputerName 192.168.183.100 -Credential $cred
[192.168.183.100]: PS C:\Users\jpb\Documents>
[192.168.183.100]: PS C:\Users\jpb\Documents> hostname
WM2008R2ENT

Если вы пытаетесь работать через VPN, вам лучше посмотреть к настройкам брандмауэра на пути к вашему серверу. Установка и настройка для удаленного управления Windows могут помочь вам. Ожидается, что TCP-порт WinRM ожидает:

WinRM 1.1 и ранее: HTTP-порт по умолчанию - 80.

WinRM 2.0: HTTP-порт по умолчанию - 5985.

< hr>

Отредактировано: В соответствии с вашей ошибкой вы можете протестировать это на компьютере youclient:

Set-Item WSMan:\localhost\Client\TrustedHosts *
3
ответ дан JPBlanc 20 August 2018 в 10:28
поделиться
  • 1
    Я не могу подключиться через IP из внутренней сети. Я попробовал это из нашего DC, и он работает, только если я использую имя хоста. Я отредактирую свое сообщение об ошибке. – wullxz 6 July 2011 в 15:46

Попробуйте сделать это:

Set-Item WSMan:\localhost\Client\TrustedHosts -Value "*" -Force
23
ответ дан manojlds 20 August 2018 в 10:28
поделиться
  • 1
    +1 Арг! ты один, я редактировал свой ответ – JPBlanc 6 July 2011 в 16:32
  • 2
    это тоже не работает. Значение IS уже установлено на «*». Но есть какая-то политика или настройки, которые не позволяют клиентам подключаться к ip. Мне нужно изменить настройки THAT, а не доверенные хосты (я уже знал о настройках доверенных хостов) – wullxz 11 July 2011 в 09:04

Ребята дали простое решение, которое, должно быть, должно посмотреть на помощь - это хорошо, выглядит много, но на самом деле быстро читать:

get-help about_Remote_Troubleshooting | more
3
ответ дан Matt 20 August 2018 в 10:28
поделиться
  • 1
    Знаете, если вы используете «help about_remote_troubleshooting», вы можете пропустить & quot; | более & Quot; часть :). – Don Jones 12 July 2011 в 17:43
  • 2
    @Don круто, ну это что-то новое, узнанное мной сегодня :) – Matt 12 July 2011 в 17:53
0
ответ дан Sambhav 31 October 2018 в 08:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: