Windows Remote Management

Viele Systeme zur Fernsteuerung von Windows-basierten Rechnern benötigen einen eigenen Client auf dem jeweiligen System….

…Beispiele dafür sind die Änderung der Lautstärke einer Medienstation oder das Herunterfahren. Meist wird dies über MQTT oder proprietäre Protokolle realisiert. Das macht das Setup jedoch unnötig kompliziert, insbesondere, wenn man versucht, die jeweiligen Systeme so wenig wie möglich anzupassen.

Wie beim letzten Projekt zur Windows-Remoteinstallation gilt: Für Fälle, für die es keine Werkzeuge gibt, muss man man sich seine eigenen bauen:

Eine in Windows eingebaute Alternative dazu ist: WMI (Windows Management Instrumentation). Darüber lassen sich beispielsweise Prozesse starten. Gleichzeitig kann auch ein ( PowerShell) Script übertragen werden.

Diese Kombination bietet viele Möglichkeiten, einen Windows-Client zu manipulieren, zumal es auch möglich ist, weitere Komponenten über NuGet) nachzuladen.

Für die Umsetzung wird die Python-Bibliothek impacket verwendet, die es ermöglicht, WMI ohne (Windows-) native Abhängigkeiten (also z. B. von Linux-Systemen aus) anzusprechen. Dafür muss lediglich der WMI-Dienst für den Zugriff von außen auf dem Client konfiguriert werden.

Das Skript (inklusive Docker-Image und REST-Service) ist auf GitHub verfügbar.