Comunicación remota de Powershell con dirección ip como destino


He habilitado correctamente PSRemoting en mi servidor 2008 R2. Puedo hacer una pssession remota desde dentro de la misma red usando el nombre de host como destino.

Estoy fallando cuando intento usar la dirección IP como destino desde cualquier computadora (dentro de la red o desde otra red (por ejemplo, a través de VPN)). Quiero poder usar la comunicación remota a través de mi conexión VPN donde tengo que usar la dirección IP ya que el nombre de host no se puede resolver.

No quiero añadir nombres a mi archivo hosts porque hay algunos otros servidores en nuestros clientes que tienen el mismo nombre dns y no quiero eliminar e insertar la asociación nombre-dirección ip una y otra vez.

Espero que alguien pueda decirme cómo permitir que el psremoting-target sea llamado a través de IP.

Editar : Para ser más específico, quiero ser capaz de ejecutar esto:

Enter-PSSession -Computername 192.168.123.123 -credentials $cred 

Pero solo puedo ejecutar ese comando si paso un nombre de host a "-Computername"

Edit2:
Me están siguiendo. errormessage cuando intento iniciar sesión usando la ip en lugar del nombre de host (de la red interna):

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:
Sé acerca de la configuración de servidores de confianza de WSMan, pero ese no parece ser el problema. Ya está configurado en " * " (lo hice justo después de habilitar la comunicación remota), pero todavía no puedo conectarme a ese servidor usando la ip como target-computername, pero puedo conectarme usando el hostname como target-computername. Parece que hay algo como la unión en IIS que impide que el receptor escuche las solicitudes que se dirigen al número ip en lugar del nombre de host. Pero IIS no está instalado. No se donde buscar un escenario así.

Actualizar 2011-07-12:
Vale, creo que trustedhosts-setting no es el problema porque PUEDO conectarme desde nuestro DC vía hostname pero no si uso la dirección ip del destino para el computer-param.
Creo que el problema debe ser el oyente. Tal vez el oyente no acepta peticiones que se dirigieron a la dirección ip de destino en lugar del nombre de host de destino. Pero no se como cambiar eso.

Author: wullxz, 2011-07-05

5 answers

El mensaje de error le está dando la mayor parte de lo que necesita. Esto no se trata solo de la lista TrustedHosts; está diciendo que para usar una dirección IP con el esquema de autenticación predeterminado, también debe usar HTTPS (que no está configurado por defecto) y proporcionar credenciales explícitas. Puedo decir que al menos no estás usando SSL, porque no usaste el interruptor-useSSL.

Tenga en cuenta que SSL/HTTPS no está configurado de forma predeterminada, eso es un paso adicional que tendrá que tomar. No puedes solo añade-useSSL.

El mecanismo de autenticación predeterminado es Kerberos, y quiere ver los nombres de host reales tal y como aparecen en AD. Ni direcciones IP, ni apodos CNAME DNS. Algunas personas habilitarán la autenticación básica, que es menos exigente, pero también debe configurar HTTPS ya que de lo contrario pasaría credenciales en texto claro. Enable-PSRemoting solo configura HTTP.

Agregar nombres a su archivo hosts no funcionará. Este no es un problema de resolución de nombres; se trata de cómo el mutuo se lleva a cabo la autenticación entre equipos.

Además, si los dos equipos involucrados en esta conexión no están en el mismo dominio de AD, el mecanismo de autenticación predeterminado no funcionará. Lea "help about_remote_troubleshooting" para obtener información sobre la configuración de la autenticación sin dominio y entre dominios.

De los documentos en 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
Author: Don Jones,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-07-12 16:49:39

Intenta hacer esto:

Set-Item WSMan:\localhost\Client\TrustedHosts -Value "*" -Force
 23
Author: manojlds,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-07-06 15:29:07

Pruebo su afirmación en mi infraestructura la dirección IP no es el problema lo siguiente funciona para mí:

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

Si intenta trabajar a través de una VPN, será mejor que eche un vistazo a la configuración del firewall en el camino a su servidor. La instalación y configuración de Windows Remote Management puede ayudarle. El puerto TCP que WinRM está esperando son:

WinRM 1.1 y versiones anteriores: El puerto HTTP predeterminado es 80.

WinRM 2.0: El puerto HTTP predeterminado es 5985.


Editado: De acuerdo con su error puede probar esto en la computadora youclient:

Set-Item WSMan:\localhost\Client\TrustedHosts *
 3
Author: JPBlanc,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-07-06 15:30:46

Los chicos han dado la solución simple, que hará que usted debe echar un vistazo a la ayuda-es bueno, parece mucho en una sola vez, pero en realidad es rápido de leer:

get-help about_Remote_Troubleshooting | more
 3
Author: Matt,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-07-06 22:54:46

En su máquina* ejecute 'Set-Item WSMan:\localhost\Client\TrustedHosts -Value "$ipaddress"

* Máquina desde la que está ejecutando PSSession

 0
Author: Sambhav,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-08-23 03:26:37