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
Einfach 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 zur Verwendung von HTTPS.

Kerberos-Authentifizierung

Sie können beim Hinzufügen und Verwalten eines PowerShell-Hosts eine Kerberos-Authentifizierung verwenden. Mit der Kerberos-Authentifizierung können Domänenbenutzer Befehle auf PowerShell-fähigen Remote-Maschinen über WinRM ausführen.

Führen Sie folgenden Befehl aus, um WinRM auf dem PowerShell-Host zu konfigurieren.
winrm quickconfig
winrm set winrm/config/service/auth '@{Kerberos="true"}'
winrm set winrm/config/winrs @{MaxMemoryPerShellMB="2048"}

Weitere Informationen finden Sie unter Konfigurieren von Kerberos-Authentifizierung für Automation Orchestrator-Plug-Ins.

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 zur 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 folgendem oder ähnlichem 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 zur 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.

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 des Powershell-Cmdlets New-SelfSignedCertificate.
    New-SelfSignedCertificate -CertStoreLocation cert:\localmachine\my -DnsName ("machinename.subdomain.company.com", "machinename") -NotAfter (get-date).AddYears(5) -Provider "Microsoft RSA SChannel Cryptographic Provider" -KeyLength 2048

    In diesem Beispiel gibt der Parameter -NotAfter an, dass das Zertifikat in 5 Jahren abläuft. Wenn dieser Parameter nicht angegeben ist, läuft das Zertifikat in 1 Jahr ab. Weitere Informationen finden Sie unter Erstellen selbstsignierter Zertifikate.

  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 Beenden.
    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.

    Nach Ablauf des Zertifikats muss der Listener gelöscht und mit dem neuen gültigen Zertifikat erneut erstellt werden.

  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