web-dev-qa-db-ger.com

Powershell-Remoting mit IP-Adresse als Ziel

Ich habe PSRemoting erfolgreich auf meinem Server 2008 R2 aktiviert. __ Ich kann eine Remote-Sitzung innerhalb desselben Netzwerks mit dem Hostnamen als Ziel ausführen.

Ich versage, wenn ich versuche, die IP-Adresse von einem beliebigen Computer (innerhalb des Netzwerks oder von einem anderen Netzwerk (z. B. über ein VPN)) als Ziel zu verwenden ... Ich möchte Remoting über meine VPN-Verbindung verwenden können Ich muss die IP-Adresse verwenden, da der Hostname nicht aufgelöst werden kann.

Ich möchte keine Namen in meine hosts-Datei einfügen, da es bei unseren Kunden einige andere Server gibt, die denselben DNS-Namen haben, und ich möchte die name-ip-address-Verband nicht wieder entfernen und einfügen und wieder.

Ich hoffe jemand kann mir sagen, wie man das Psremoting-Ziel über IP anrufen lässt.

Edit : Um genauer zu sein, möchte ich Folgendes ausführen können: 

Enter-PSSession -Computername 192.168.123.123 -credentials $cred 

Ich kann diesen Befehl jedoch nur ausführen, wenn ich einen Hostnamen an "-Computername" übergebe.

Edit2 :
Ich erhalte folgende Fehlermeldung, wenn ich versuche, mich mit der IP-Adresse anstelle des Hostnamens (vom internen Netzwerk) anzumelden:

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:
Ich kenne die Einstellung für vertrauenswürdige Hosts von WSMan, aber das scheint nicht das Problem zu sein. Es ist bereits auf "*" gesetzt (ich habe das direkt nach dem Aktivieren von Remoting getan), aber ich kann immer noch keine Verbindung zu diesem Server herstellen, indem ich die IP als Zielcomputername verwendet. Ich kann jedoch den Hostnamen als Zielcomputername verwenden . Anscheinend gibt es so etwas wie die Bindung in IIS, die den Listener daran hindert, Anforderungen zu überwachen, die auf die IP-Nummer statt auf den Hostnamen abzielen. IIS ist jedoch nicht installiert. Ich weiß nicht, wo ich nach einer solchen Einstellung suchen muss.

Update 2011-07-12:
Okay, ich denke, dass die Einstellung von trustedhosts nicht das Problem ist, da ich von unserem DC über den Hostnamen eine Verbindung herstellen kann, aber nicht, wenn ich die IP-Adresse des Ziels für den Computer-param verwende.
Ich denke, das Problem muss der Zuhörer sein. Möglicherweise nimmt der Listener keine Anforderungen an, die an die Ziel-IP gerichtet waren, anstelle des Ziel-Hostnamens. Aber ich weiß nicht, wie ich das ändern kann.

55
wullxz

Die Fehlermeldung gibt Ihnen das meiste, was Sie brauchen. Hierbei geht es nicht nur um die TrustedHosts-Liste. Um eine IP-Adresse mit dem Standardauthentifizierungsschema zu verwenden, müssen Sie AUCH HTTPS (das nicht standardmäßig konfiguriert ist) verwenden und explizite Anmeldeinformationen angeben. Ich kann sagen, dass Sie zumindest kein SSL verwenden, weil Sie den Schalter -UseSSL nicht verwendet haben.

Beachten Sie, dass SSL/HTTPS nicht standardmäßig konfiguriert ist. Dies ist ein zusätzlicher Schritt, den Sie unternehmen müssen. Sie können -UseSSL nicht einfach hinzufügen.

Der Standardauthentifizierungsmechanismus ist Kerberos. Er möchte echte Host-Namen sehen, wie sie in AD angezeigt werden. Keine IP-Adressen, keine DNS-CNAME-Kurznamen. Einige Benutzer aktivieren die Standardauthentifizierung, was weniger wählerisch ist. Sie sollten jedoch auch HTTPS einrichten, da Sie sonst die Anmeldeinformationen im Klartext übergeben. Enable-PSRemoting richtet nur HTTP ein. 

Das Hinzufügen von Namen zu Ihrer Hosts-Datei funktioniert nicht. Dies ist keine Frage der Namensauflösung. Es geht darum, wie die gegenseitige Authentifizierung zwischen Computern durchgeführt wird. 

Wenn sich die beiden an dieser Verbindung beteiligten Computer nicht in derselben AD-Domäne befinden, funktioniert der Standardauthentifizierungsmechanismus nicht. Weitere Informationen zum Konfigurieren der Authentifizierung außerhalb von Domänen und Domänenübergreifender Domänen finden Sie in der "Hilfe zu_Remote_Fehlerbehebung".

Aus den Dokumenten unter http://technet.Microsoft.com/de-de/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

Versuchen Sie folgendes:

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

Ich teste deine Behauptung in meiner Infrastruktur. Die IP-Adresse ist nicht das Problem, das für mich funktioniert:

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

Wenn Sie versuchen, über ein VPN zu arbeiten, sollten Sie sich die Firewall-Einstellungen auf dem Weg zu Ihrem Server genauer ansehen. Installation und Konfiguration für Windows Remote Management kann Ihnen helfen. Der TCP - Port, auf den WinRM wartet, ist:

WinRM 1.1 und früher: Der Standard-HTTP-Port ist 80.

WinRM 2.0: Der Standard-HTTP-Port ist 5985.


Bearbeitet: Je nach Fehler können Sie dies auf einem Youclient-Computer testen:

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

Die Jungs haben die einfache Lösung gegeben. Sie sollten sich die Hilfe ansehen. Sie ist gut, sieht auf den ersten Blick wie viel aus, ist aber in der Tat schnell zu lesen:

get-help about_Remote_Troubleshooting | more
3
Matt

Unter Windows 10 muss sichergestellt sein, dass der WinRM-Dienst ausgeführt wird, um den Befehl aufzurufen

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

0

Auf deinem Rechner * laufe 'Set-Item WSMan:\localhost\Client\TrustedHosts -Value "$ipaddress"

* Computer, von dem aus Sie PSSession ausführen

0
Sambhav