web-dev-qa-db-fra.com

Powershell à distance avec l'adresse IP comme cible

J'ai activé avec succès PSRemoting sur mon serveur 2008 R2 . Je peux effectuer une session à distance à partir du même réseau en utilisant le nom d'hôte comme cible.

J'échoue lorsque j'essaie d'utiliser l'adresse IP comme cible à partir de n'importe quel ordinateur (du réseau ou d'un autre réseau (par exemple, via un réseau privé virtuel)) .. Je veux pouvoir utiliser la communication à distance via ma connexion VPN où Je dois utiliser l'adresse IP car le nom d'hôte ne peut pas être résolu.

Je ne veux pas ajouter de noms dans mon fichier hôtes car il y a quelques autres serveurs chez nos clients qui ont le même nom DNS et je ne veux pas supprimer et réinsérer l'association nom-ip-adresse-adresse. et encore.

J'espère que quelqu'un pourra me dire comment permettre à la cible psremoting d'être appelée via IP.

Edit : Pour être plus précis, je veux pouvoir exécuter ceci: 

Enter-PSSession -Computername 192.168.123.123 -credentials $cred 

Mais je ne peux exécuter cette commande que si je passe un nom d'hôte à "-Computername"

Edit2 :
Je reçois le message d'erreur suivant lorsque j'essaie de me connecter en utilisant l'adresse IP au lieu du nom d'hôte (du réseau interne):

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:
Je connais le paramètre hôtes approuvés de WSMan, mais cela ne semble pas être le problème. Il est déjà défini sur "*" (je l'ai fait juste après l'activation de la communication à distance), mais je ne peux toujours pas me connecter à ce serveur en utilisant l'adresse IP en tant que target-nom_ordinateur, mais je peux me connecter en utilisant le nom d'hôte en tant que target-nom_ordinateur . On dirait qu'il existe quelque chose comme la liaison dans IIS qui empêche l'écouteur d'écouter les demandes qui ciblent l'IP-number au lieu du nom d'hôte. Mais IIS n'est pas installé. Je ne sais pas où chercher un tel cadre.

Mise à jour 2011-07-12:
Je pense que ce paramètre n’est pas un problème, car je peux me connecter à partir de notre DC via nom d’hôte, mais pas si j’utilise l’adresse IP de la destination pour l’ordinateur-param.
Je pense que le problème doit être l'auditeur. Peut-être que l'écouteur ne prend aucune requête ciblée vers l'adresse-destination plutôt que vers le nom-hôte-destination. Mais je ne sais pas comment changer ça.

55
wullxz

Le message d'erreur vous donne l'essentiel de ce dont vous avez besoin. Cela ne concerne pas seulement la liste TrustedHosts; cela veut dire que pour utiliser une adresse IP avec le schéma d'authentification par défaut, vous devez également utiliser HTTPS (qui n'est pas configuré par défaut) et fournir des informations d'identification explicites. Je peux dire que vous n'utilisez pas au moins SSL, car vous n'avez pas utilisé le commutateur -UseSSL.

Notez que SSL/HTTPS n'est pas configuré par défaut - c'est une étape supplémentaire que vous devrez suivre. Vous ne pouvez pas simplement ajouter -UseSSL.

Le mécanisme d'authentification par défaut est Kerberos et il souhaite voir les noms d'hôte réels tels qu'ils apparaissent dans AD. Pas les adresses IP, pas les surnoms DNS CNAME. Certaines personnes activeront l'authentification de base, ce qui est moins difficile, mais vous devez également configurer HTTPS, car vous auriez sinon passé les informations d'identification en texte clair. Enable-PSRemoting configure uniquement HTTP. 

Ajouter des noms à votre fichier hosts ne fonctionnera pas. Ce n'est pas une question de résolution de nom; il s'agit de la manière dont l'authentification mutuelle entre ordinateurs est effectuée. 

De plus, si les deux ordinateurs impliqués dans cette connexion ne font pas partie du même domaine AD, le mécanisme d'authentification par défaut ne fonctionnera pas. Lisez "help about_remote_troubleshooting" pour plus d'informations sur la configuration de l'authentification hors domaine et interdomaine.

À partir de la documentation à 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.
44
Don Jones

Essayez de faire ceci:

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

Je teste votre affirmation dans mon infrastructure, l’adresse IP n’est pas le problème mais les problèmes suivants me conviennent:

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 vous essayez de travailler sur un VPN, vous feriez mieux de consulter les paramètres du pare-feu sur le chemin de votre serveur. Installation et configuration pour la gestion à distance de Windows peut vous aider. Le port TCP que WinRM attend est le suivant:

WinRM 1.1 et versions antérieures: le port HTTP par défaut est 80.

WinRM 2.0: le port HTTP par défaut est 5985.


Édité: Selon votre erreur, pouvez-vous tester ceci sur l'ordinateur youclient:

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

Les gars ont donné une solution simple: vous devriez jeter un coup d'œil à l'aide: c'est bon, ça ressemble beaucoup, mais c'est rapide à lire:

get-help about_Remote_Troubleshooting | more
3
Matt

Sous Windows 10, il est important de s’assurer que le service WinRM est en cours d’exécution pour appeler la commande.

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

0
chubbakachuchuchu

Sur votre machine * lancez 'Set-Item WSMan:\localhost\Client\TrustedHosts -Value "$ipaddress"

* Machine à partir de laquelle vous exécutez PSSession

0
Sambhav