Подтвердить что ты не робот

Удаленный доступ к PowerShell с ip-адресом в качестве целевого

Я успешно включил PSRemoting на моем сервере 2008 R2. Я могу сделать удаленное pssession из одной сети, используя имя хоста в качестве цели.

Я терпеть неудачу, когда пытаюсь использовать IP-адрес как цель с любого компьютера (внутри сети или из другой сети (например, через VPN)). Я хочу иметь возможность использовать удаленное соединение через мое VPN-соединение, где мне нужно использовать IP-адрес, поскольку имя хоста не может быть разрешено.

Я не хочу добавлять имена в свой хост файл, потому что на наших клиентах есть несколько других серверов, которые имеют одинаковое имя DNS, и я не хочу удалять и вставлять имя-ip-адрес -связь снова и снова.

Я надеюсь, что кто-то скажет мне, как разрешить вызов psremoting-target через IP.

Изменить. Чтобы быть более конкретным, я хочу иметь возможность запускать это:

Enter-PSSession -Computername 192.168.123.123 -credentials $cred 

Но я могу выполнить эту команду только в том случае, если передать имя хоста на "-Computername"

Edit2:
Я получаю следующее errormessage, когда я пытаюсь войти с использованием ip вместо имени хоста (из внутренней сети):

Enter-PSSession : Connecting to remote server failed with the following error message : The WinRM client cannot process
 the request. Default authentication may be used with an IP address under the following conditions: the transport is HT
TPS or the destination is in the TrustedHosts list, and explicit credentials are provided. Use winrm.cmd to configure T
rustedHosts. Note that computers in the TrustedHosts list might not be authenticated. For more information on how to se
t TrustedHosts run the following command: winrm help config. For more information, see the about_Remote_Troubleshooting
 Help topic.

Edit3:
Я знаю о настройке доверенных хостов WSMan, но это, похоже, не проблема. Он уже настроен на "*" (я сделал это сразу после включения удаленного доступа), но я до сих пор не могу подключиться к этому серверу с использованием ip как имя-target-computername, но я могу подключиться с использованием имени хоста в качестве имени-target-computername, Кажется, что есть что-то вроде привязки в IIS, которое не позволяет слушателю прослушивать запросы, которые нацелены на ip-номер вместо имени хоста. Но IIS не установлен. Я не знаю, где искать такую ​​настройку.

Обновление 2011-07-12:
Хорошо, я думаю, что trustedhosts-setting не является проблемой, потому что я могу подключиться от нашего DC через имя хоста, но не если я использую ip-адрес адресата для компьютера-param.
Я думаю, проблема должна быть слушателем. Возможно, слушатель не принимает запросов, предназначенных для целевого-ip вместо имени-hostname. Но я не знаю, как это изменить.

4b9b3361

Ответ 1

Сообщение об ошибке дает вам больше всего того, что вам нужно. Речь идет не только о списке 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.

Ответ 2

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

Set-Item WSMan:\localhost\Client\TrustedHosts -Value "*" -Force

Ответ 3

Я проверяю ваше утверждение в своей инфраструктуре, 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.


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

Set-Item WSMan:\localhost\Client\TrustedHosts *

Ответ 4

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

get-help about_Remote_Troubleshooting | more

Ответ 5

На вашем компьютере * запустите 'Set-Item WSMan:\localhost\Client\TrustedHosts -Value "$ipaddress"

* Машина, с которой вы запускаете PSSession

Ответ 6

В Windows 10 важно убедиться, что служба WinRM запущена для вызова команда

* Set-Item wsman:\localhost\Client\TrustedHosts -value '*' -Force *