WS-Management (WSMan) Remoting in PowerShell

Anweisungen zum Erstellen eines Remoting-Endpunkts

Das PowerShell-Paket für Windows enthält ein WinRM-Plug-In (pwrshplugin.dll) und ein Installationsskript (Install-PowerShellRemoting.ps1) in $PSHome. Diese Dateien ermöglichen PowerShell eingehende PowerShell-Remoteverbindungen anzunehmen, wenn ihr Endpunkt angegeben ist.

Motivation

Eine PowerShell-Installation kann mithilfe von New-PSSession und Enter-PSSession PowerShell-Sitzungen mit Remotecomputern erstellen. Der Benutzer muss zunächst einen WinRM-Remoting-Endpunkt erstellen, um PowerShell das Annehmen von eingehenden Remoteverbindungen zu erlauben. Dies ist ein Szenario mit expliziter Anmeldung, bei dem der Benutzer „Install-PowerShellRemoting.ps1“ ausführt, um den WinRM-Endpunkt zu erstellen. Das Installationsskript ist eine kurzfristige Lösung, bis Enable-PSRemoting eine zusätzliche Funktion hinzugefügt wird, um diese Aktion auszuführen. Weitere Informationen finden Sie im Ticket #1193.

Skriptaktionen

Das Skript

  1. Erstellt ein Verzeichnis für das Plug-In unter $env:windir\System32\PowerShell
  2. Kopiert „Pwrshplugin.dll“ an diesen Speicherort
  3. Erstellt eine Konfigurationsdatei
  4. Registriert das Plug-In für WinRM

Registrierung

Das Skript muss in einer PowerShell-Sitzung auf Administratorebene ausgeführt werden, und wird in zwei Modi ausgeführt.

Wird durch die PowerShell-Instanz ausgeführt, die es registriert

Install-PowerShellRemoting.ps1

Wird durch eine andere PowerShell-Instanz für die Instanz ausgeführt, die registriert wird

<path to powershell>\Install-PowerShellRemoting.ps1 -PowerShellHome "<absolute path to the instance's $PSHOME>"

Beispiel:

Set-Location -Path 'C:\Program Files\PowerShell\6.0.0\'
.\Install-PowerShellRemoting.ps1 -PowerShellHome "C:\Program Files\PowerShell\6.0.0\"

Hinweis

Das Remoting-Registrierungsskript führt einen Neustart von WinRM aus. Alle vorhandenen PSRP-Sitzungen werden unmittelbar nach der Ausführung des Skripts beendet. Wenn es während einer Remotesitzung ausgeführt wird, beendet das Skript die Verbindung.

Herstellen einer Verbindung mit dem neuen Endpunkt

Erstellen Sie eine PowerShell-Sitzung mit dem neuen PowerShell-Endpunkt, indem Sie -ConfigurationName "some endpoint name" angeben. Verwenden Sie zum Verbinden mit der PowerShell-Instanz aus dem obigen Beispiel einen dieser Aufrufe:

New-PSSession ... -ConfigurationName "powershell.6.0.0"
Enter-PSSession ... -ConfigurationName "powershell.6.0.0"

Beachten Sie, dass New-PSSession- und Enter-PSSession-Aufrufe, die -ConfigurationName nicht angeben, den PowerShell-Standardendpunkt microsoft.powershell als Ziel verwenden.