Remotesupportsoftware bietet nicht immer die Möglichkeit administrative Aufgaben durchzuführen. Man Programme also nur im Kontext des aktuell angemeldeten Benutzers ausführen. Bei Teamviewer, Teams und diversen anderen Programmen, bei denen man den Desktop freigeben kann, ist dies der Fall.

Eine Ausnahme sei erwähnt: der Fastviewer Client kann das. Soll keine Werbung sein, ist nur der einzige Client den ich kenne, der das kann.

Hier eine Anleitung zur vorbereitung der Client für PowerShell Remotemanagement über VPN. Das ist eine besondere Form, da man Remotesitzungen in Powershell normalerweise über den Hostnamen durchführt. Dazu muss der Client mit der IP im DNS registriert sein. Das ist bei VPN-Verbindungen oft nicht der Fall. Deshalb zeige ich in diesem Artikel auch wie man über eine IP per Powershell auf einen Client zugreifen kann und welche Voraussetzungen dafür erfüllt sein müssen.

Zuerst werden die nötigen Gruppenrichtlinien ausgerollt:

  1. Firewallausnahmen auf dem Client setzen
  2. WinRM Dienst starten
  3. TrustedHost Liste für die Clients definieren (für Zugriff über IP nötig)
  4. Ausführungsrichtlinie bestimmen

Diese Gruppenrichtlinien sind alle für die Clients bestimmt. Also in der entsprechenden OU ausrollen.

1. Firewallausnahmen auf dem Client setzen

Diese Art der Firewallkonfiguration funktioniert erst ab Windows 10. Davor musste man die Ports über die folgende GPO konfigurieren Richtlinien->Administrative Vorlagen->Netzwerk-Netzwerkverbindungen->Windows Defender Firewall->{Profil}->Eingehende Portausnahme festlegen.

Hier ein Beispiel für WSMan:

WSMan in Client Firewall für ältere Clients erlauben

Also los gehts!

Richtlinien->Windows-Einstellungen->Sicherheitseinstellungen->Windows-Firewall mit erweiterter Sicherheit->Eingehende Regeln

Rechte Maustaste->Neue Regel

Vordefinierte Regel->Windows-Remoteverwaltung->HTTP eingehend

Nur die Regel für die Domäne auswählen

Dann mit der rechten Maustaste auf die eben erstellte Regel klicken, den Bereich einschränken und bei Bedarf auch für das öffentliche Netzwerk freigeben. Man sollte auf jeden Fall den Bereich der Server einschränken, über die man die Remoteverwaltung durchführen kann:

Bereich einschränken
Netzwerkprofile wählen

Ping aktiviert man mal besser gleich mit:

Rechte Maustaste->Neue Regel

Vordefinierte Regel->Datei- und Druckerfreigabe->ICMPv4 eingehend

Ping erlauben

WinRM Dienst starten

Einstellungen->Systemsteuerungseinstellungen->Dienste

Rechts Mausteste->Neu->Dienst

WinRM Dienst starten
2. Reiter. Bei Problemen neu starten

3. TrustedHost Liste für die Clients definieren (für Zugriff über IP nötig)

Richtlinien->Administrative Vorlagen->Windows-Komponenten->Windows-Remoteverwaltung (Windows Remote Management, WinRM)->WinRM-Client->Vertrauenswürdige Hosts

Die Eingabemöglichkeiten sind gut erklärt. Man kann mit Domänennamen arbeiten oder mit IP-Adressen. In meinem Fall habe ich beides gemacht und eingetragen: *.domain.com, 10.0.1.*

Die Domaine und die Ip’s sind natürlich individuell anzupassen. In meinem Fall ist die IP Range 10.0.1.* Mein Serverbereich. Man kann also nur von den Servern aus auf die Clients per PowerShell unter Angabe der IP zugreifen.

4. Ausführungsrichtlinie bestimmen

Bei PowerShell gibt es sogenannte Ausführungsrichtlinien. Diese bestimmen ob ein Script unsigniert ausgeführt werden darf. Mehr dazu hier:

https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7.1

Wir definieren, dass alle Scripte, die nicht lokal ausgeführt werden, signiert seien müssen. Die nächsthöhere Sicherheitsstufe ist, dass alle Script signiert seien müssen. Stichwort Set-AuthenticodeSignature.

Richtlinien->Administrative Vorlagen->Windows-Komponenten->Windows PowerShell->Scriptausführung aktivieren

Scriptausführung

Weiter geht es mit Teil 2: