Share via


about_Remote_Requirements

Kurze Beschreibung

Beschreibt die Systemanforderungen und Konfigurationsanforderungen für die Ausführung von Remotebefehlen in PowerShell.

Lange Beschreibung

In diesem Thema werden die Systemanforderungen, Benutzeranforderungen und Ressourcenanforderungen zum Einrichten von Remoteverbindungen und ausführen von Remotebefehlen in PowerShell beschrieben. Außerdem werden Anweisungen zum Konfigurieren von Remotevorgängen bereitgestellt.

Hinweis

Viele Cmdlets (einschließlich der Get-ServiceCmdlets , Get-ProcessGet-WMIObject, , Get-EventLogundGet-WinEvent) rufen Objekte von Remotecomputern ab, indem sie Microsoft .NET Framework Methoden verwenden, um die Objekte abzurufen. Sie verwenden nicht die PowerShell-Remotinginfrastruktur. Die Anforderungen in diesem Dokument gelten nicht für diese Cmdlets.

Um die Cmdlets zu finden, die über einen ComputerName-Parameter verfügen, aber kein PowerShell-Remoting verwenden, lesen Sie die Beschreibung des ComputerName-Parameters der Cmdlets.

Systemanforderungen

Zum Ausführen von Remotesitzungen auf Windows PowerShell 3.0 müssen die lokalen Computer und Remotecomputer Folgendes aufweisen:

  • Windows PowerShell 3.0 oder höher
  • Microsoft .NET Framework 4 oder höher
  • Windows-Remoteverwaltung 3.0

Zum Ausführen von Remotesitzungen auf Windows PowerShell 2.0 müssen die lokalen Computer und Remotecomputer Folgendes aufweisen:

  • Windows PowerShell 2.0 oder höher
  • Microsoft .NET Framework 2.0 oder höher
  • Windows-Remoteverwaltung 2.0

Sie können Remotesitzungen zwischen Computern erstellen, auf denen Windows PowerShell 2.0 und Windows PowerShell 3.0 ausgeführt wird. Features, die nur unter Windows PowerShell 3.0 ausgeführt werden, wie z. B. die Möglichkeit, die Verbindung mit Sitzungen zu trennen und erneut herzustellen, sind jedoch nur verfügbar, wenn auf beiden Computern Windows PowerShell 3.0 ausgeführt wird.

Verwenden Sie $PSVersionTable die automatische Variable, um die Versionsnummer einer installierten Version von PowerShell zu ermitteln.

Windows Remote Management (WinRM) 3.0 und Microsoft .NET Framework 4 sind in Windows 8, Windows Server 2012 und neueren Versionen des Windows-Betriebssystems enthalten. WinRM 3.0 ist in Windows Management Framework 3.0 für ältere Betriebssysteme enthalten. Wenn der Computer nicht über die erforderliche Version von WinRM oder microsoft .NET Framework verfügt, schlägt die Installation fehl.

Benutzerberechtigungen

Um Remotesitzungen zu erstellen und Remotebefehle auszuführen, muss der aktuelle Benutzer standardmäßig Mitglied der Gruppe Administratoren auf dem Remotecomputer sein oder die Anmeldeinformationen eines Administrators angeben. Andernfalls führt der Befehl zu einem Fehler.

Die erforderlichen Berechtigungen zum Erstellen von Sitzungen und Ausführen von Befehlen auf einem Remotecomputer (oder in einer Remotesitzung auf dem lokalen Computer) werden von der Sitzungskonfiguration (auch als Endpunkt bezeichnet) auf dem Remotecomputer festgelegt, mit dem die Sitzung eine Verbindung herstellt. Insbesondere bestimmt der Sicherheitsdeskriptor in der Sitzungskonfiguration, wer Zugriff auf die Sitzungskonfiguration hat und wer sie zum Herstellen einer Verbindung verwenden kann.

Die Sicherheitsbeschreibungen für die Standardsitzungskonfigurationen Microsoft.PowerShell, Microsoft.PowerShell32 und Microsoft.PowerShell.Workflow erlauben den Zugriff nur für Mitglieder der Gruppe Administratoren .

Wenn der aktuelle Benutzer nicht über die Berechtigung zur Verwendung der Sitzungskonfiguration verfügt, schlägt der Befehl zum Ausführen eines Befehls (der eine temporäre Sitzung verwendet) oder das Erstellen einer persistenten Sitzung auf dem Remotecomputer fehl. Der Benutzer kann den Parameter ConfigurationName von Cmdlets verwenden, die Sitzungen erstellen, um eine andere Sitzungskonfiguration auszuwählen, sofern verfügbar.

Mitglieder der Gruppe Administratoren auf einem Computer können bestimmen, wer über die Berechtigung zum Herstellen einer Remoteverbindung mit dem Computer verfügt, indem sie die Sicherheitsbeschreibungen für die Standardsitzungskonfigurationen ändern und neue Sitzungskonfigurationen mit verschiedenen Sicherheitsbeschreibungen erstellen.

Weitere Informationen zu Sitzungskonfigurationen finden Sie unter about_Session_Configurations.

Windows-Netzwerkspeicherorte

Ab Windows PowerShell 3.0 kann das Enable-PSRemoting Cmdlet Remoting auf Client- und Serverversionen von Windows in privaten, domänen- und öffentlichen Netzwerken aktivieren.

Unter Serverversionen von Windows mit privaten und Domänennetzwerken erstellt das Enable-PSRemoting Cmdlet Firewallregeln, die uneingeschränkten Remotezugriff ermöglichen. Außerdem wird eine Firewallregel für öffentliche Netzwerke erstellt, die den Remotezugriff nur von Computern im selben lokalen Subnetz zulässt. Diese Firewallregel des lokalen Subnetzes ist auf Serverversionen von Windows in öffentlichen Netzwerken standardmäßig aktiviert, wendet die Regel jedoch Enable-PSRemoting erneut an, falls sie geändert oder gelöscht wurde.

Unter Clientversionen von Windows mit privaten und Domänennetzwerken erstellt das Cmdlet standardmäßig Firewallregeln, die Enable-PSRemoting uneingeschränkten Remotezugriff zulassen.

Verwenden Sie den Parameter SkipNetworkProfileCheck des Cmdlets, um Remoting für Clientversionen von Enable-PSRemoting Windows mit öffentlichen Netzwerken zu aktivieren. Es wird eine Firewallregel erstellt, die den Remotezugriff nur von Computern im selben lokalen Subnetz zulässt.

Verwenden Sie Set-NetFirewallRule das Cmdlet im NetSecurity-Modul , um die Einschränkung des lokalen Subnetzes in öffentlichen Netzwerken zu entfernen und den Remotezugriff von allen Standorten auf Client- und Serverversionen von Windows zuzulassen. Führen Sie den folgenden Befehl aus:

Set-NetFirewallRule -Name "WINRM-HTTP-In-TCP-PUBLIC" -RemoteAddress Any

Hinweis

Der Name der Firewallregel kann für verschiedene Versionen von Windows unterschiedlich sein. Verwenden Sie Get-NetFirewallRule , um eine Liste von Regeln anzuzeigen. Zeigen Sie vor dem Aktivieren der Firewallregel die Sicherheitseinstellungen in der Regel an, um zu überprüfen, ob die Konfiguration für Ihre Umgebung geeignet ist.

In Windows PowerShell 2.0 werden unter Serverversionen von Windows Firewallregeln erstellt, Enable-PSRemoting die Remotezugriff auf alle Netzwerke zulassen.

In Windows PowerShell 2.0 werden unter Clientversionen von Windows Enable-PSRemoting Firewallregeln nur in privaten Netzwerken und Domänennetzwerken erstellt. Wenn der Netzwerkspeicherort öffentlich ist, Enable-PSRemoting tritt ein Fehler auf.

Als Administrator ausführen

Für die folgenden Remotingvorgänge sind Administratorrechte erforderlich:

  • Herstellen einer Remoteverbindung mit dem lokalen Computer. Dies wird allgemein als "Loopback"-Szenario bezeichnet.

  • Verwalten von Sitzungskonfigurationen auf dem lokalen Computer.

  • Anzeigen und Ändern WS-Management Einstellungen auf dem lokalen Computer. Dies sind die Einstellungen im LocalHost-Knoten des WSMAN:-Laufwerks.

Um diese Aufgaben auszuführen, müssen Sie PowerShell mit der Option "Als Administrator ausführen" starten, auch wenn Sie Mitglied der Gruppe Administratoren auf dem lokalen Computer sind.

So starten Sie PowerShell in Windows 7 und Windows Server 2008 R2 mit der Option Als Administrator ausführen :

  1. Klicken Sie auf Start, alle Programme, Zubehör und dann auf den Ordner PowerShell.
  2. Klicken Sie mit der rechten Maustaste auf PowerShell, und klicken Sie dann auf Als Administrator ausführen.

So starten Sie Windows PowerShell mit der Option Als Administrator ausführen:

  1. Klicken Sie auf Start, alle Programme und dann auf den Ordner PowerShell.
  2. Klicken Sie mit der rechten Maustaste auf PowerShell, und klicken Sie dann auf Als Administrator ausführen.

Die Option Als Administrator ausführen ist auch in anderen Windows Explorer Einträgen für PowerShell verfügbar, einschließlich Tastenkombinationen. Klicken Sie einfach mit der rechten Maustaste auf das Element, und klicken Sie dann auf Als Administrator ausführen.

Wenn Sie PowerShell über ein anderes Programm wie Cmd.exe starten, verwenden Sie die Option Als Administrator ausführen , um das Programm zu starten.

Konfigurieren des Computers für Remoting

Computer, auf denen alle unterstützten Versionen von Windows ausgeführt werden, können Remoteverbindungen mit herstellen und Remotebefehle in PowerShell ohne Konfiguration ausführen. Um Jedoch Verbindungen zu empfangen und Benutzern das Erstellen lokaler und remote benutzerseitig verwalteter PowerShell-Sitzungen ("PSSessions") und ausführen von Befehlen auf dem lokalen Computer zu ermöglichen, müssen Sie PowerShell-Remoting auf dem Computer aktivieren.

Windows Server 2012 und neuere Versionen von Windows Server sind standardmäßig für PowerShell-Remoting aktiviert. Wenn die Einstellungen geändert werden, können Sie die Standardeinstellungen wiederherstellen, indem Sie das Enable-PSRemoting Cmdlet ausführen.

Unter allen anderen unterstützten Versionen von Windows müssen Sie das Enable-PSRemoting Cmdlet ausführen, um PowerShell-Remoting zu aktivieren.

Die Remotingfeatures von PowerShell werden vom WinRM-Dienst unterstützt, bei dem es sich um die Microsoft-Implementierung des WS-Management-Protokolls (Web Services for Management) handelt. Wenn Sie PowerShell-Remoting aktivieren, ändern Sie die Standardkonfiguration von WS-Management und fügen die Systemkonfiguration hinzu, mit der Benutzer eine Verbindung mit WS-Management herstellen können.

So konfigurieren Sie PowerShell für den Empfang von Remotebefehlen:

  1. Starten Sie PowerShell mit der Option Als Administrator ausführen .
  2. Geben Sie an der Eingabeaufforderung Folgendes ein: Enable-PSRemoting

Um zu überprüfen, ob Remoting ordnungsgemäß konfiguriert ist, führen Sie einen Testbefehl aus, z. B. den folgenden Befehl, der eine Remotesitzung auf dem lokalen Computer erstellt.

New-PSSession

Wenn Remoting ordnungsgemäß konfiguriert ist, erstellt der Befehl eine Sitzung auf dem lokalen Computer und gibt ein Objekt zurück, das die Sitzung darstellt. Die Ausgabe sollte der folgenden Beispielausgabe ähneln:

Id Name        ComputerName    State    ConfigurationName
-- ----        ------------    -----    -----
1  Session1    localhost       Opened   Microsoft.PowerShell

Wenn der Befehl fehlschlägt, finden Sie weitere Informationen unter about_Remote_Troubleshooting.

Verstehen von Richtlinien

Wenn Sie remote arbeiten, verwenden Sie zwei Instanzen von PowerShell, eine auf dem lokalen Computer und eine auf dem Remotecomputer. Infolgedessen wird Ihre Arbeit von den Windows-Richtlinien und den PowerShell-Richtlinien auf den lokalen und Remotecomputern beeinflusst.

Im Allgemeinen sind die Richtlinien auf dem lokalen Computer wirksam, bevor Sie eine Verbindung herstellen und die Verbindung herstellen. Wenn Sie die Verbindung verwenden, sind die Richtlinien auf dem Remotecomputer in Kraft.

Einschränkungen der Standardauthentifizierung unter Linux und macOS

Beim Herstellen einer Verbindung zwischen einem Linux- oder macOS-System und Windows wird die Standardauthentifizierung über HTTP nicht unterstützt. Die Standardauthentifizierung kann über HTTPS verwendet werden, indem ein Zertifikat auf dem Zielserver installiert wird. Das Zertifikat muss über einen CN-Namen verfügen, der mit dem Hostnamen übereinstimmt, nicht abgelaufen oder widerrufen ist. Ein selbstsigniertes Zertifikat kann zu Testzwecken verwendet werden.

Weitere Informationen finden Sie unter Vorgehensweise: Konfigurieren von WINRM für HTTPS .

Der folgende Befehl, der von einer Eingabeaufforderung mit erhöhten Rechten ausgeführt wird, konfiguriert den HTTPS-Listener unter Windows mit dem installierten Zertifikat.

$hostinfo = '@{Hostname="<DNS_NAME>"; CertificateThumbprint="<THUMBPRINT>"}'
winrm create winrm/config/Listener?Address=*+Transport=HTTPS $hostinfo

Wählen Sie auf der Linux- oder macOS-Seite Standard für die Authentifizierung und -UseSSl aus.

Hinweis

Die Standardauthentifizierung kann nicht mit Domänenkonten verwendet werden. Ein lokales Konto ist erforderlich, und das Konto muss sich in der Gruppe Administratoren befinden.

# The specified local user must have administrator rights on the target machine.
# Specify the unqualified username.
$cred = Get-Credential username
$session = New-PSSession -Computer <hostname> -Credential $cred `
  -Authentication Basic -UseSSL

Eine Alternative zur Standardauthentifizierung über HTTPS ist Negotiate. Dies führt dazu, dass die NTLM-Authentifizierung zwischen Client und Server erfolgt, und die Nutzlast wird über HTTP verschlüsselt.

Im Folgenden wird die Verwendung von Negotiate mit New-PSSessionveranschaulicht:

# The specified user must have administrator rights on the target machine.
$cred = Get-Credential username@hostname
$session = New-PSSession -Computer <hostname> -Credential $cred `
  -Authentication Negotiate

Hinweis

Windows Server erfordert eine zusätzliche Registrierungseinstellung, damit Administratoren außer dem integrierten Administrator eine Verbindung mithilfe von NTLM herstellen können. Weitere Informationen finden Sie in der Registrierungseinstellung LocalAccountTokenFilterPolicy unter Negotiate Authentication in Authentication for Remote Connections

Siehe auch