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:

Screenshots

WSControl Haupfenster
WSControl im abgemeldeten Zustand. Hier ist nur der Taskplaner aktiv, das Programm kann erst bedient werden, wenn man sich über den Optionen-Button anmeldet
Liste der Befehle
Dieser Dialog folgt einem Klick auf "Vorgang". Hier kann man vordefinierte Befehle oder eigene Kommandozeilen an die ausgewälten Computer schicken.
Download (15 kB)