Freigeben über


Informationen zu Remoteanforderungen

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 enthält sie Anweisungen zum Konfigurieren von Remotevorgängen.

Hinweis: Viele Cmdlets (einschließlich der Cmdlets Get-Service, Get-Process, Get-WMIObject, Get-EventLog und Get-WinEvent) rufen Objekte von Remotecomputern mithilfe von Microsoft .NET Framework-Methoden ab, 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 die Remotecomputer über Folgendes verfügen:

  • 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 über Folgendes verfügen:

  • 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 auf Windows PowerShell 3.0 ausgeführt werden, z. B. die Möglichkeit, die Verbindung zu trennen und eine Verbindung mit Sitzungen herzustellen, sind jedoch nur verfügbar, wenn auf beiden Computern Windows PowerShell 3.0 ausgeführt wird.

Verwenden Sie die automatische Variable $PSVersionTable, 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 für die 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 Mitgliedern 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 eine persistente Sitzung auf dem Remotecomputer fehl. Der Benutzer kann den ConfigurationName-Parameter von Cmdlets verwenden, die Sitzungen erstellen, um eine andere Sitzungskonfiguration auszuwählen, sofern eine verfügbar ist.

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

Weitere Informationen zu Sitzungskonfigurationen finden Sie unter about_Session_Configurations.

WINDOWS-NETZWERKSTANDORTE

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

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

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

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

Verwenden Sie das Cmdlet Set-NetFirewallRule 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 aus zuzulassen. Führen Sie den folgenden Befehl aus:

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

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

In Windows PowerShell 2.0 erstellt Enable-PSRemoting unter Clientversionen von Windows Firewallregeln nur für private Netzwerke und Domänennetzwerke. Wenn der Netzwerkspeicherort öffentlich ist, schlägt Enable-PSRemoting fehl.

ALS ADMINISTRATOR AUSFÜHREN

Administratorrechte sind für die folgenden Remotingvorgänge 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.

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

Um in Windows 7 und Windows Server 2008 R2 Windows PowerShell mit der Option "Als Administrator ausführen" zu starten:

  1. Klicken Sie auf Start, auf Alle Programme, auf Zubehör und dann auf den Ordner Windows PowerShell.
  2. Klicken Sie mit der rechten Maustaste auf Windows 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 Windows PowerShell.
  2. Klicken Sie mit der rechten Maustaste auf Windows 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 Windows PowerShell verfügbar, einschließlich Verknüpfungen. Klicken Sie einfach mit der rechten Maustaste auf das Element, und klicken Sie dann auf "Als Administrator ausführen".

Wenn Sie Windows PowerShell von einem anderen Programm wie Cmd.exe starten, verwenden Sie die Option "Als Administrator ausführen", um das Programm zu starten.

KONFIGURIEREN IHRES 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 remotebenutzerseitig 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 neueren 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 Cmdlet Enable-PSRemoting ausführen.

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

Die Remotingfeatures von PowerShell werden vom WinRM-Dienst unterstützt, der Microsoft-Implementierung des WS-Management-Protokolls (Web Services for Management). 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

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

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.

GRUNDLEGENDES ZU 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 gültig, 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 von einem Linux- oder macOS-System mit 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 dem Hostnamen entspricht, 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, führen Sie an einer Eingabeaufforderung mit erhöhten Rechten aus, 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 und die Nutzlast über HTTP verschlüsselt wird.

Die folgende Abbildung veranschaulicht die Verwendung von Negotiate with New-PSSession:

# 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 andere Administratoren als der integrierte Administrator eine Verbindung mithilfe von NTLM herstellen können. Weitere Informationen finden Sie in der Registrierungseinstellung LocalAccountTokenFilterPolicy unter Aushandlung der Authentifizierung für Remote-Connections

SIEHE AUCH

about_Remote

about_Remote_Variables

about_PSSessions

Invoke-Command

Enter-PSSession

New-PSSession