WSControl 1.37
WSControl ist ein Programm, mit dem von einem Computer im Netzwerk alle anderen
Computer im Netzwerk ferngesteuert werden können. D.h. es können Befehle auf diesen
Computern ausgeführt werden, die man auch in den "Ausführen..." Dialog von Windows
schreiben könnte. Zusätzlich gibt es noch Systembefehle, die SysCmd's. Sie fangen mit
SysCmd_ an, dann kommt der meist selbsterklärende Befehl. Diese sind in der Datei
Befehle.txt im Archiv wscontrol.zip erklärt. Mit ihnen können Vorgänge gestartet werden, die sich per Kommandozeile
nicht oder nur umständlich ausführen lassen, z.B. Fenster schlie�n.
Die Vorgeschichte: Als Administratoren des 16 Computer und 1 Server-Netzwerks in der
Schule brauchten wir ein Programm, um z.B. alle Computer auf einmal herunterzufahren,
Programme darauf zu installieren usw. kurz auf allen Computern gleichzeitig einen Befehl
auszuführen. Wir hatten es uns einfach gemacht indem wir die Workstations durchnumerierten:
WS01 bis WS16. Der Server hie�Server. Wir setzten uns dann eine Nacht lang an das Programm
und konnten es am nächsten Morgen stolz vorzeigen. Die Benutzeroberfläche war komfortabel,
war aber noch mit ein paar Bugs behaftet, und das Programm erfüllte seinen Zweck, zumindest
bei mir zuhause. In der Schule angekommen, fanden wir schnell alle Bugs, die dann ab Version
1.08 alle behoben waren. Dann kamen andere Probleme auf, z.B. wollten wir die Registry
aller Computer in ein dafür vorgesehenes Verzeichnis auf dem Server kopieren, in unserem
Fall \\server\Backup\WSXX. Das Problem war, dass der copy-Befehl aus DOS keine Lust hatte
die Dateien zu kopieren, weil sie ja geöffnet sind. Der in Wintr32 eingebaute copy-
Befehl kopierte nur Dateien, die keine Attribute hatten. Dieses Problem hätte sich durch
die folgenden Befehlszeilen umgehen lassen:
Attrib -h -s -r c:\windows\system.dat
Attrib -h -s -r c:\windows\user.dat
SysCmd_Copy;c:\windows\system.dat;\\Server\backup\WS01\system.dat
SysCmd_Copy;c:\windows\user.dat;\\Server\backup\WS01\system.dat
Attrib +h +s +r c:\windows\system.dat
Attrib +h +s +r c:\windows\user.dat
Das sind 6 Befehle von denen 2 nur auf WS01 funktionieren würden. Ja dann viel Spaß bei
16 Workstations! Der Ausweg war die Variable %WS%, die dann die jeweilige WS mit ihrem
Namen füllte und der Scriptbefehl SysCmd_Script mit dem man Batchdateien mit WSControl
Befehlen ausführen konnte. Hinzu kamen noch Systembefehle, die DOS-Kommandos ablösten und
andere praktische Funktionen erlaubten. Hier will ich nochmal auf die Datei Befehle.txt
verweisen.
Als nächstes war das Problem zu lösen, alle Rechner 1 Minute vor Ende der Pause
herunterfahren zu lassen, d.h. um 9:54 und um 11:34. Es musste also ein Taskplaner
her. Diesen bauten wir in WSControl ein, mussten aber deswegen dessen Anmeldung
modifizieren: Den Taskplaner sollte man ohne Passwort starten können, schlie�ich
sollte der ja in den Autostart. Die restlichen Funktionen sollten aber erst nach
einer Anmeldung durch das Passwort verfügbar werden. Dazu deaktivierten wir einfach
beim Programmstart alle relevanten Buttons und fügten dem Optionen-Menü den Punkt
"Anmelden..." hinzu. Hatte man sich angemeldet waren alle üblichen Funktionen
aktiv.
Aus persönlichem Ergeiz und um das Programm für ein breiteres Publikum verfügbar zu
machen, fing ich dann eines Tages an, WSControl für dynamische Computernamen umzuprogrammieren.
Garnicht so einfach, wenn die ganze Kommunikation über eine Datei läuft. Kurzgesagt,
Version 1.19 funktionierte zwar zu hause an zwei Computern, nicht aber in der Schule mit 16
Computern. Entweder es fehlten 10 Computer oder es war einer 2 mal eingetragen. Jedenfalls war klar:
So geht das nicht.
In den Ferien setzten wir uns zusammen und Manuels Frage war: Geht das nicht auch ohne Datei??
Klar geht das, wusste ich auch die ganze Zeit, traute mich aber nicht an das Gebiet heran, das
da heißt: WinSock. Aber wir probierten es doch. Eins war klar: Profan und WinSock, das wird
nie was, also entschieden wir uns für C. Dank
Johnnies
WinSock Tutorial kamen wir eigentlich sehr schnell sehr weit. Auf Konsolen-Basis (also im DOS-Fenster)
war schnell ein Programm entworfen, das WSControl glich. Nun musste die Benutzeroberfläche von
WSControl 1.19 mit dem "kernel" der C-Version kombiniert werden. Das war ein bisschen Arbeit,
die auch jetzt noch nicht ganz abgeschlossen ist, es sind noch nicht alle SysCmd's implementiert.
Trotzdem möchte ich das Programm als beta-Version freigeben, zum Testen und Berichten.
In der Readme stehen die wichtigsten Punkte ber die Einrichtung, ich möchte sie hier nicht
wiederholen.
Abschließend nochmal alle Features im Überblick und ein paar Screenshots.
Features:
- Führt beliebige Befehle auf einem Netzwerk-PC aus.
- Auf den PCs wird nur ein kleines (7kb) Server-Programm benötigt.
- Lässt sich unkompliziert bedienen.
- Neben den normalen Befehlen gibt es sog. SysCmd's zum Ausführen spezieller Funktionen, z.B. Fenster schließen
- Das Programm ist passwortgeschützt.
- Es können Nachrichten versendet werden
- Befehle können mit dem Planer automatisiert werden
- Kann in Batchdateien eingebunden werden
- Das Programm belastet das Netzwerk und die PCs fast nicht
Screenshots

WSControl im abgemeldeten Zustand. Hier ist nur der Taskplaner aktiv,
das Programm kann erst bedient werden,
wenn man sich über den Optionen-Button anmeldet

Dieser Dialog folgt einem Klick auf "Vorgang". Hier kann man vordefinierte Befehle
oder eigene Kommandozeilen an die ausgewälten Computer schicken.