Удаленное взаимодействие Powershell с ip-адресом в качестве цели


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

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

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

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

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

Enter-PSSession -Computername 192.168.123.123 -credentials $cred 

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

Edit2:
Я получаю следующее сообщение об ошибке, когда я пытаюсь войти, используя 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 в качестве целевого имени компьютера, но я могу подключение с использованием имени хоста в качестве целевого-имя_компьютера. Похоже, что есть что-то вроде привязки в IIS, которая мешает прослушивателю прослушивать запросы, которые нацелены на ip-номер вместо имени хоста. Но IIS не установлен. Я не знаю, где искать такую обстановку.

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

5 52

5 ответов:

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

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

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

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

кроме того, если два компьютера, участвующих в этом соединении, не находятся в одном домене AD, механизм проверки подлинности по умолчанию не будет работать. Читать "разделе 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.

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

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

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

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

get-help about_Remote_Troubleshooting | more

на вашем компьютере * run 'Set-Item WSMan:\localhost\Client\TrustedHosts -Value "$ipaddress"

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