Damit eine Verbindung zwischen dem PowerShell-Plug-In und Windows PowerShell hergestellt werden kann, müssen Sie in der Konfiguration von WinRM die Verwendung eines der unterstützten Kommunikationsprotokolle festlegen.

Das PowerShell-Plug-In unterstützt Windows Remote Management (WinRM) 2.0 als Management-Protokoll.

Die folgenden Authentifizierungsmethoden werden unterstützt:
Authentifizierungsmethode Details
Standard Nicht sicherer Authentifizierungsmechanismus, der einen Benutzernamen und ein Kennwort verlangt.
Kerberos Sicheres Authentifizierungsprotokoll, das die Identität von Client und Server mithilfe von Tickets überprüft.
Hinweis: Das PowerShell-Plug-In unterstützt keine Delegierung von Benutzeranmeldedaten in WinRM, und CredSSP ist keine unterstützte Authentifizierungsmethode.

WinRM über HTTP

Das PowerShell-Plug-In unterstützt die Kommunikation mit dem WinRM-Host über das HTTP-Protokoll. Die Kommunikation wird zwar von WinRM authentifiziert, die Datenübertragung ist jedoch nicht verschlüsselt, sondern wird als Klartext im Netzwerk gesendet. Sie sollten das HTTP-Protokoll verwenden, wenn IPSec zwischen den kommunizierenden Maschinen konfiguriert ist.

Wenn Sie die Standardauthentifizierung verwenden möchten, müssen Sie die Eigenschaft AllowUnencrypted sowohl in der WinRM-Konfiguration des Dienstes als auch in derjenigen des Clients auf true setzen. Sie finden ein Beispiel für die HTTP-Konfiguration unter Konfigurieren von WinRM für die Verwendung von HTTP.

WinRM über HTTPS

Das PowerShell-Plug-In unterstützt die Kommunikation mit dem WinRM-Host über das HTTPS-Protokoll. Sie können das HTTPS-Protokoll als Kommunikationsmethode verwenden, wenn Sie mehr Sicherheit wünschen.

Wenn Sie das HTTPS-Protokoll verwenden möchten, müssen Sie ein Zertifikat für die Serverauthentifizierung generieren und dieses auf dem WinRM-Host installieren. Sie finden ein Beispiel für die HTTPS-Konfiguration unter Konfigurieren von WinRM für die Verwendung von HTTPS.

Konfigurieren von WinRM für die Verwendung von HTTP

Sie können den WinRM-Host so konfigurieren, dass eine Kommunikation mit dem PowerShell-Plug-In über das HTTP-Protokoll möglich ist.

Sie müssen die WinRM-Konfiguration ändern, indem Sie Befehle auf der WinRM-Hostmaschine ausführen. Sie können dieselbe Maschine als WinRM-Dienst und als WinRM-Client verwenden.

Wichtig: Wenn Sie bei der Konfiguration von WinRM für die Verwendung von HTTP einen der Schritte überspringen, wird der Host möglicherweise nicht hinzugefügt, und in den Protokollen steht unter Umständen eine Fehlermeldung mit ungefähr folgendem Wortlaut:
Caused by: org.dom4j.DocumentException: Error on line -1 of document : Premature end of file. 
Nested exception: Premature end of file.
at org.dom4j.io.SAXReader.read(SAXReader.java:482)
at org.dom4j.DocumentHelper.parseText(DocumentHelper.java:278)
at com.xebialabs.overthere.cifs.winrm.connector.JdkHttpConnector.sendMessage(JdkHttpConnector.java:117)

Prozedur

  1. Führen Sie den folgenden Befehl aus, um die WinRM-Standardkonfigurationswerte festzulegen.
    c:\> winrm quickconfig
  2. (Optional) Führen Sie den folgenden Befehl aus, um zu prüfen, ob gerade ein Listener ausgeführt wird. Überprüfen Sie dann die Standardports.
    c:\> winrm e winrm/config/listener

    Als Standardport wird für HTTP der Port 5985 und für HTTPS der Port 5986 verwendet.

  3. Aktivieren Sie im WinRM-Dienst die Standardauthentifizierung.
    1. Führen Sie den folgenden Befehl aus, um zu überprüfen, ob die Standardauthentifizierung zulässig ist.
      c:\> winrm get winrm/config/service
    2. Führen Sie den folgenden Befehl aus, um die Standardauthentifizierung zu aktivieren.
      c:\> winrm set winrm/config/service/auth @{Basic="true"}
  4. Führen Sie den folgenden Befehl aus, um die Übertragung von unverschlüsselten Daten im WinRM-Dienst zu ermöglichen.
    c:\> winrm set winrm/config/service @{AllowUnencrypted="true"}
  5. Wenn das Härtelevel des Kanalbindungstoken des WinRM-Dienstes auf strict gesetzt ist, ändern Sie dessen Wert in relaxed.
    c:\> winrm set winrm/config/service/auth @{CbtHardeningLevel="relaxed"}
  6. Aktivieren Sie auf dem WinRM-Client die Standardauthentifizierung.
    1. Führen Sie den folgenden Befehl aus, um zu überprüfen, ob die Standardauthentifizierung zulässig ist.
      c:\> winrm get winrm/config/client
    2. Führen Sie den folgenden Befehl aus, um die Standardauthentifizierung zu aktivieren.
      c:\> winrm set winrm/config/client/auth @{Basic="true"}
  7. Führen Sie den folgenden Befehl aus, um die Übertragung von unverschlüsselten Daten auf dem WinRM-Client zu ermöglichen.
    c:\> winrm set winrm/config/client @{AllowUnencrypted="true"}
  8. Wenn sich die WinRM-Hostmaschine in einer externen Domäne befindet, führen Sie den folgenden Befehl aus, um die vertrauenswürdigen Hosts anzugeben.
    c:\> winrm set winrm/config/client @{TrustedHosts="Host1, Host2, Host3"}
  9. Führen Sie den folgenden Befehl aus, um die Verbindung mit dem WinRM-Dienst zu testen.
    c:\> winrm identify -r:http://WinRM-Server:5985 -auth:basic -u:Benutzername -p:Kennwort -encoding:utf-8

Konfigurieren von WinRM für die Verwendung von HTTPS

Sie können den WinRM-Host so konfigurieren, dass eine Kommunikation mit dem PowerShell-Plug-In über das HTTPS-Protokoll möglich ist.

Der WinRM-Host benötigt ein Zertifikat, damit er über das HTTPS-Protokoll kommunizieren kann. Sie können dieses Zertifikat entweder anfordern oder selbst generieren. Sie können beispielsweise mit dem Tool für die Erstellung von Zertifikaten (makecert.exe), das Bestandteil des .NET Framework-SDK ist, ein selbstsigniertes Zertifikat generieren.

Voraussetzungen

  • Konfigurieren Sie WinRM für die Verwendung des HTTP-Protokolls. Weitere Informationen finden Sie unter Konfigurieren von WinRM für die Verwendung von HTTP.
  • Stellen Sie sicher, dass Sie auf dem WinRM-Host auf die Microsoft Management Console (mmc.exe) zugreifen können.

Prozedur

  1. Generieren Sie ein selbstsigniertes Zertifikat.
    Die folgende Befehlszeile enthält eine Beispielsyntax für die Erstellung eines Zertifikats auf dem WinRM-Host mithilfe von makecert.exe.

    makecert.exe -r -pe -n "CN=Hostname-3,O=Organisationsname" -e mm/dd/yyyy -eku 1.3.6.1.5.5.7.3.1 -ss my -sr localMachine -sky exchange -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 Zertifikatsname.cer

  2. Fügen Sie das generierte Zertifikat mithilfe der Microsoft Management Console hinzu.
    1. Führen Sie mmc.exe aus.
    2. Wählen Sie Datei > Snap-In hinzufügen/entfernen aus.
    3. Wählen Sie in der Liste der verfügbaren Snap-Ins Zertifikate aus und klicken Sie auf Hinzufügen.
    4. Wählen Sie Computerkonto aus und klicken Sie auf Weiter.
    5. Klicken Sie auf Fertig stellen.
    6. Vergewissern Sie sich, dass das Zertifikat in Konsolenstamm > Zertifikate (Lokaler Computer) > Persönlich > Zertifikate und Konsolenstamm > Zertifikate (Lokaler Computer) > Vertrauenswürdige Stammzertifizierungsstellen > Zertifikate installiert wurde.
      Wenn das Zertifikat nicht in den Ordnern „Vertrauenswürdige Stammzertifizierungsstellen“ und „Persönlich“ installiert wurde, müssen Sie es manuell installieren.
  3. Erstellen Sie einen HTTPS-Listener mit dem richtigen Fingerabdruck und Hostnamen.
    Die folgende Befehlszeile enthält eine Beispielsyntax für die Erstellung eines HTTPS-Listeners.

    winrm create winrm/config/Listener?Address=*+Transport=HTTPS @{Hostname="Hostname";CertificateThumbprint="Zertifikatfingerabdruck"}

    Hinweis: Entfernen Sie die Leerzeichen im Fingerabdruck des Zertifikats.
  4. Testen Sie die Verbindung.
    Die folgende Befehlszeile enthält eine Beispielsyntax für das Testen der Verbindung.

    winrs -r:https://Hostname:Portnummer -u:Benutzername -p:Kennwort hostname