So steuern Sie Ihren PC von Ihrem Mobiltelefon aus mit PowerShell Remoting

Letzte Aktualisierung: 15/10/2025

  • Remoting verwendet WinRM/WS-Man (HTTP/HTTPS) und ermöglicht 1-zu-1-, 1-zu-viele- und dauerhafte Sitzungen mit Sicherheitskontrollen.
  • Enable-PSRemoting konfiguriert den Dienst, die Listener und die Firewall. HTTPS erfordert ein gültiges Zertifikat und eine CN/SAN-Übereinstimmung.
  • Die Ergebnisse werden deserialisiert zurückgegeben; Methoden werden innerhalb des Remote-Skriptblocks aufgerufen und benutzerdefinierte Endpunkte werden für eine feinkörnige Delegierung verwendet.
PowerShell-Remoting

Sie automatisieren möglicherweise bereits viele Aufgaben lokal mit PowerShell, aber wo finden Sie wirklich PowerShell Remoting macht den Unterschied Dabei werden Befehle auf Remotecomputern ausgeführt, egal ob auf einigen oder Hunderten, interaktiv oder parallel. Diese Technologie, die seit Windows PowerShell 2.0 verfügbar und seit 3.0 verbessert wurde, basiert auf WS-Management (WinRM) und konvertiert Powershell in einem robusten, skalierbaren und sicheren Remote-Management-Kanal.

Zunächst ist es wichtig, zwei Schlüsselideen zu verstehen: Cmdlets mit -ComputerName-Parameter (z. B. Get-Process oder Get-Service) sind nicht der von Microsoft empfohlene langfristige Weg, und PowerShell Remoting funktioniert nicht als „Hack“. Tatsächlich erzwingt gegenseitige Authentifizierung, Prüfprotokolle und respektiert Ihre üblichen Berechtigungen, ohne Anmeldeinformationen zu speichern oder auf magische Weise etwas mit Superberechtigungen auszuführen.

Was ist PowerShell-Remoting und warum sollte man es verwenden?

Mit PowerShell Remoting können Führen Sie fast jeden Befehl aus der Ferne aus die Sie in einer lokalen Sitzung starten können, von der Abfrage von Diensten bis zur Bereitstellung von Konfigurationen, und das auf Hunderten von Computern gleichzeitig. Im Gegensatz zu Cmdlets, die -ComputerName akzeptieren (viele verwenden DCOM/RPC), Remoting läuft über WS-Man (HTTP/HTTPS), das Firewall-freundlicher ist, Parallelität ermöglicht und die Arbeit auf den Remote-Host und nicht auf den Client auslagert.

Dies führt zu drei praktischen Vorteilen: bessere Leistung bei Massenausführungen, weniger Reibung in Netzwerken mit restriktiven Regeln und einem Sicherheitsmodell, das mit Kerberos/HTTPS kompatibel ist. Da nicht jedes Cmdlet seine eigene Remote-Remote-Implementierung benötigt, Es funktioniert für jedes Skript oder jede Rolle die am Zielort verfügbar ist.

Standardmäßig sind bei neueren Windows-Servern Remoting aktiviert; in Windows 10/11 Sie aktivieren es mit einem einzigen Cmdlet. Und ja, Sie können alternative Anmeldeinformationen, dauerhafte Sitzungen, benutzerdefinierte Endpunkte und mehr verwenden.

Hinweis: Remoting ist nicht gleichbedeutend mit dem Öffnen aller Elemente. Standardmäßig nur Administratoren Sie können eine Verbindung herstellen und Aktionen werden unter ihrer Identität ausgeführt. Wenn Sie eine feinkörnige Delegierung benötigen, können Sie mit benutzerdefinierten Endpunkten nur die wesentlichen Befehle verfügbar machen.

PowerShell-Remoting-Architektur

So funktioniert es im Inneren: WinRM, WS-Man und Ports

PowerShell Remoting arbeitet in einem Client-Server-Modell. Der Client sendet WS-Management-Anfragen über HTTP (5985/TCP) oder HTTPS (5986/TCP)Auf dem Ziel lauscht der Windows Remote Management (WinRM)-Dienst, löst den Endpunkt auf (Sitzungskonfiguration) und hostet die PowerShell-Sitzung im Hintergrund (wsmprovhost.exe-Prozess). Rückgabe serialisierter Ergebnisse an den Client in XML über SOAP.

Wenn Sie Remoting zum ersten Mal aktivieren, werden Listener konfiguriert, die entsprechende Firewall-Ausnahme geöffnet und Sitzungskonfigurationen erstellt. Ab PowerShell 6+ sind mehrere Editionen parallel verfügbar. Aktivieren-PSRemoting Registriert Endpunkte mit Namen, die die Version widerspiegeln (z. B. PowerShell.7 und PowerShell.7.xy).

Exklusiver Inhalt – Klicken Sie hier  Wie behebe ich Leistungsprobleme mit Intego Mac Internet Security?

Wenn Sie in Ihrer Umgebung nur HTTPS zulassen, können Sie eine sicherer Zuhörer mit einem Zertifikat, das von einer vertrauenswürdigen Zertifizierungsstelle ausgestellt wurde (empfohlen). Alternativ besteht eine weitere Möglichkeit darin, TrustedHosts in begrenztem, risikobewusstem Umfang für Arbeitsgruppenszenarien oder Nicht-Domänencomputer zu verwenden.

Beachten Sie, dass Powershell Remoting mit Cmdlets mit -ComputerName koexistieren kann, aber Microsoft treibt WS-Man voran als Standard und zukunftssichere Methode zur Fernverwaltung.

Aktivieren von PowerShell-Remoting und nützlichen Parametern

Öffnen Sie unter Windows einfach PowerShell als Administrator und führen Sie aus Aktivieren-PSRemotingDas System startet WinRM, konfiguriert den Autostart, aktiviert den Listener und erstellt die entsprechenden Firewall-Regeln. Auf Clients mit einem öffentlichen Netzwerkprofil können Sie dies gezielt zulassen mit -SkipNetworkProfileCheck (und dann mit spezifischen Regeln verstärken):

Enable-PSRemoting
Enable-PSRemoting -Force
Enable-PSRemoting -SkipNetworkProfileCheck -Force

 

Die Syntax ermöglicht außerdem, -Bestätigen y -Was ist, wenn zur Änderungskontrolle. Denken Sie daran: Es ist nur unter Windows verfügbar, und Sie müssen die Konsole mit erhöhten Rechten ausführen. Die erstellten Regeln unterscheiden sich zwischen Server- und Client-Editionen, insbesondere in öffentlichen Netzwerken, wo sie standardmäßig auf das lokale Subnetz beschränkt sind, sofern Sie den Umfang nicht erweitern (z. B. mit Set-NetFirewallRule).

Um bereits aufgezeichnete Sitzungskonfigurationen aufzulisten und zu bestätigen, dass alles bereit ist, verwenden Sie Get-PSSessionConfigurationWenn die PowerShell.x- und Workflow-Endpunkte angezeigt werden, ist das Remoting-Framework betriebsbereit.

Remotesitzung mit PowerShell

Nutzungsmodi: 1 zu 1, 1 zu vielen und persistente Sitzungen

Wenn Sie eine interaktive Konsole auf einem einzelnen Computer benötigen, wenden Sie sich an Geben Sie die PSSession einDie Eingabeaufforderung wird angezeigt, und alle von Ihnen ausgeführten Aktionen werden an den Remote-Host gesendet. Sie können die Anmeldeinformationen mit Get-Credential wiederverwenden, um die ständige erneute Eingabe zu vermeiden:

$cred = Get-Credential
Enter-PSSession -ComputerName dc01 -Credential $cred
Exit-PSSession

Wenn Sie Befehle an mehrere Computer gleichzeitig senden möchten, ist das Tool Aufruf-Befehl mit einem Skriptblock. Standardmäßig werden bis zu 32 gleichzeitige Verbindungen gestartet (einstellbar mit -ThrottleLimit). Die Ergebnisse werden zurückgegeben als deserialisierte Objekte (ohne „Live“-Methoden):

Invoke-Command -ComputerName dc01,sql02,web01 -ScriptBlock { Get-Service -Name W32Time } -Credential $cred

Müssen Sie eine Methode wie .Stop() oder .Start() aufrufen? Tun Sie es. innerhalb des Skriptblocks im Remotekontext, nicht das lokal deserialisierte Objekt, und das war's. Wenn es ein entsprechendes Cmdlet (Stop-Service/Start-Service) gibt, ist es normalerweise aus Gründen der Übersichtlichkeit vorzuziehen, dieses zu verwenden.

Um die Kosten für das Starten und Beenden von Sitzungen bei jedem Anruf zu vermeiden, erstellen Sie eine Dauerhafte PSSession und verwenden Sie es für mehrere Aufrufe wieder. Verwenden Sie New-PSSession, um die Verbindung herzustellen, und Invoke-Command-Session, um den Tunnel wiederzuverwenden. Vergessen Sie nicht, ihn anschließend mit Remove-PSSession zu schließen.

Serialisierung, Grenzen und bewährte Verfahren

Ein wichtiges Detail: Beim Reisen werden die Objekte „abgeflacht“ und kommen als deserialisierte Snapshots, mit Eigenschaften, aber ohne Methoden. Dies ist beabsichtigt und spart Bandbreite, bedeutet aber, dass Sie keine Member verwenden können, die Logik ausführen (wie .Kill()), auf der lokalen Kopie. Die Lösung liegt auf der Hand: Rufen Sie diese Methoden auf. aus der Ferne und wenn Sie nur bestimmte Felder benötigen, filtern Sie mit Select-Object, um weniger Daten zu senden.

Exklusiver Inhalt – Klicken Sie hier  Wie vermeide ich Sperren und Sanktionen auf TikTok?

Vermeiden Sie in Skripten Enter-PSSession (für die interaktive Nutzung vorgesehen) und verwenden Sie Invoke-Command mit Skriptblöcken. Wenn Sie mehrere Aufrufe erwarten oder den Status (Variablen, importierte Module) beibehalten müssen, Verwenden Sie persistente Sitzungen und trennen/verbinden Sie sie gegebenenfalls mit Disconnect-PSSession/Connect-PSSession in PowerShell 3.0+.

Authentifizierung, HTTPS und Off-Domain-Szenarien

In einer Domäne ist die native Authentifizierung Kerberos Und alles läuft reibungslos. Wenn das Gerät den Servernamen nicht verifizieren kann oder Sie eine Verbindung zu einer CNAME-IP oder einem Alias ​​herstellen, benötigen Sie eine dieser beiden Optionen: 1) Listener HTTPS mit Zertifikat von einer vertrauenswürdigen Zertifizierungsstelle ausgestellt, oder 2) fügen Sie das Ziel (Name oder IP) zu TrustedHosts hinzu und Anmeldeinformationen verwendenDie zweite Option deaktiviert die gegenseitige Authentifizierung für diesen Host und reduziert so den Umfang auf das erforderliche Minimum.

Für die Einrichtung eines HTTPS-Listeners ist ein Zertifikat (idealerweise von Ihrer PKI oder einer öffentlichen Zertifizierungsstelle) erforderlich, das im Team Store installiert und an WinRM gebunden ist. Anschließend wird Port 5986/TCP in der Firewall geöffnet und vom Client aus verwendet. -UseSSL in Remote-Cmdlets. Für die Client-Zertifikatauthentifizierung können Sie ein Zertifikat einem lokalen Konto zuordnen und eine Verbindung mit -Zertifikat-Fingerabdruck (Enter-PSSession akzeptiert dies nicht direkt; erstellen Sie die Sitzung zuerst mit New-PSSession.)

Der zweite Hop und die Delegation von Anmeldeinformationen

Der berühmte „Double Hop“ tritt auf, wenn Sie nach der Verbindung mit einem Server diesen Server benötigen, um auf eine dritte Ressource in Ihrem Namen (z. B. eine SMB-Freigabe). Es gibt zwei Ansätze, um dies zu ermöglichen: CredSSP und ressourcenbasierte eingeschränkte Kerberos-Delegierung.

Mit CredSSP Sie ermöglichen dem Client und dem Vermittler die explizite Delegierung von Anmeldeinformationen und legen eine Richtlinie (GPO) fest, die die Delegierung an bestimmte Computer zulässt. Die Konfiguration ist schnell, aber weniger sicher, da die Anmeldeinformationen im verschlüsselten Tunnel im Klartext übertragen werden. Begrenzen Sie stets Quellen und Ziele.

Die bevorzugte Alternative in der Domäne ist die eingeschränkte Kerberos-Delegierung (ressourcenbasierte eingeschränkte Delegierung) in modernem AD. Dadurch kann sich der Endpunkt auf die Delegierung bestimmter Dienste vom Middlepoint verlassen, ohne dass Ihre Identität bei der ersten Verbindung preisgegeben wird. Erfordert aktuelle Domänencontroller und ein aktualisiertes RSAT.

Benutzerdefinierte Endpunkte (Sitzungskonfigurationen)

Eine der Perlen des Remoting ist die Möglichkeit, Verbindungspunkte mit maßgeschneiderte Fähigkeiten und Grenzen. Zuerst generieren Sie eine Datei mit New-PSSessionConfigurationFile (Module zum Vorladen, sichtbare Funktionen, Aliase, ExecutionPolicy, LanguageMode usw.) und registrieren sie dann mit Register-PSSessionConfiguration. Dort können Sie Folgendes festlegen: RunAsCredential und Berechtigungen (SDDL oder GUI-Schnittstelle mit -ShowSecurityDescriptorUI).

Für eine sichere Delegation legen Sie mit -VisibleCmdlets/-VisibleFunctions nur das Nötige offen und deaktivieren Sie gegebenenfalls freies Scripting mit LanguageMode RestrictedLanguage oder NoLanguage. Wenn Sie FullLanguage verlassen, könnte jemand einen Skriptblock verwenden, um nicht verfügbare Befehle aufzurufen, die in Kombination mit RunAs es wäre ein Loch. Entwerfen Sie diese Endpunkte mit einem feinen Kamm und dokumentieren Sie ihren Umfang.

Domänen, GPOs und Groupware

In AD können Sie Powershell Remoting in großem Maßstab mit GPO bereitstellen: Ermöglichen Sie die automatische Konfiguration von WinRM-Listenern. Stellen Sie den Dienst auf „Automatisch“ ein, und erstellen Sie die Firewall-Ausnahme. Denken Sie daran, dass GPOs zwar Einstellungen ändern, den Dienst aber nicht immer sofort aktivieren. Manchmal ist ein Neustart oder ein erzwungenes gpupdate erforderlich.

Exklusiver Inhalt – Klicken Sie hier  So erfahren Sie Ihr Gmail-Passwort

Konfigurieren Sie Remoting in Arbeitsgruppen (nicht in Domänen) mit Aktivieren-PSRemoting, setzen Sie TrustedHosts auf dem Client (winrm set winrm/config/client @{TrustedHosts=»host1,host2″}) und verwenden Sie lokale Anmeldeinformationen. Für HTTPS können Sie selbstsignierte Zertifikate einbinden, obwohl es empfohlen wird, eine vertrauenswürdige Zertifizierungsstelle zu verwenden und den Namen bestätigen den Sie in -ComputerName im Zertifikat verwenden werden (CN/SAN-Übereinstimmung).

Wichtige Cmdlets und Syntax

Eine Handvoll Kommandos decken die 90 % der täglichen Szenarien. So aktivieren/deaktivieren Sie:

Enable-PSRemoting    
Disable-PSRemoting

Interaktive Sitzung 1 zu 1 und Ausgang:

Enter-PSSession -ComputerName SEC504STUDENT 
Exit-PSSession

1 zu viele, mit Parallelität und Anmeldeinformationen:

Invoke-Command -ComputerName dc01,sql02,web01 -ScriptBlock { Get-Service W32Time } -Credential $cred

Dauerhafte Sitzungen und wiederverwenden:

$s = New-PSSession -ComputerName localhost -ConfigurationName PowerShell.7
Invoke-Command -Session $s -ScriptBlock { $PSVersionTable }
Remove-PSSession $s

Testen und WinRM Sinnvoll:

Test-WSMan -ComputerName host
winrm get winrm/config
winrm enumerate winrm/config/listener
winrm quickconfig -transport:https

Praktische Hinweise zu Firewall, Netzwerk und Ports

Öffnen Sie 5985/TCP für HTTP und 5986/TCP für HTTPS auf dem Zielcomputer und auf jede zwischengeschaltete FirewallAuf Windows-Clients erstellt Enable-PSRemoting Regeln für Domänen- und private Profile. Bei öffentlichen Profilen ist es auf das lokale Subnetz beschränkt, sofern Sie den Umfang nicht mit Set-NetFirewallRule -RemoteAddress Any ändern (ein Wert, den Sie basierend auf Ihrem Risiko bewerten können).

Wenn Sie SOAR/SIEM-Integrationen verwenden, die Remote-Befehle ausführen (z. B. von XSOAR), stellen Sie sicher, dass der Server DNS-Auflösung zu den Hosts, Konnektivität zu 5985/5986 und Anmeldeinformationen mit ausreichenden lokalen Berechtigungen. In einigen Fällen muss die NTLM-/Basic-Authentifizierung möglicherweise angepasst werden (z. B. Verwendung eines lokalen Benutzers in Basic mit SSL).

Enable-PSRemoting-Parameter (Betriebszusammenfassung)

-Confirm fordert vor der Ausführung eine Bestätigung an; -Force ignoriert die Warnungen und nehmen Sie die notwendigen Änderungen vor; -SkipNetworkProfileCheck ermöglicht Remoting in öffentlichen Client-Netzwerken (standardmäßig auf das lokale Subnetz beschränkt); -WhatIf zeigt Ihnen, was ohne Änderungen passieren würde. Darüber hinaus unterstützt es wie jedes Standard-Cmdlet gemeinsame Parameter (-Verbose, -ErrorAction usw.).

Denken Sie daran, dass „Aktivieren“ keine HTTPS-Listener oder Zertifikate für Sie erstellt. Wenn Sie von Anfang an eine Ende-zu-Ende-Verschlüsselung und eine Authentifizierung basierend auf bescheinigt, konfigurieren Sie den HTTPS-Listener und validieren Sie CN/SAN anhand des Namens, den Sie in -ComputerName verwenden werden.

Nützliche WinRM- und PowerShell-Remoting-Befehle

Einige wichtige Nachttischartikel Für den Alltag:

winrm get winrm/config
winrm enumerate winrm/config/listener
Set-NetFirewallRule -Name 'WINRM-HTTP-In-TCP' -RemoteAddress Any
Test-WSMan -ComputerName host -Authentication Default -Credential (Get-Credential)
New-PSSession -ComputerName host 
Enter-PSSession -ComputerName host 
Enable-PSRemoting -SkipNetworkProfileCheck -Force

Bei der Verwaltung von Windows im großen Maßstab ermöglicht Remoting den Wechsel von „Computer-zu-Computer“ zu einem deklarativen und sicheren Ansatz. Durch die Kombination von persistenten Sitzungen, starker Authentifizierung (Kerberos/HTTPS), eingeschränkten Endpunkten und eindeutigen Traces für die Diagnose Sie gewinnen an Geschwindigkeit und Kontrolle ohne Abstriche bei Sicherheit oder Auditing. Wenn Sie zusätzlich die GPO-Aktivierung standardisieren und Sonderfälle (TrustedHosts, Double Hop, Zertifikate) beherrschen, verfügen Sie über eine solide Remote-Plattform für den täglichen Betrieb und die Reaktion auf Vorfälle.

unsichtbare Malware
Verwandte Artikel:
So schützen Sie Ihren PC vor unsichtbarer Malware wie XWorm und NotDoor