Freitag, 17. März 2006

Computer zeitgesteuert herunterfahren

Problem:

Unsere lieben Schüler - aber durchaus auch die Kollegen im Lehrerzimmer - lassen häufig die Computer nach der Benutzung weiterlaufen. Natürlich ist dies sinnvoll, wenn der nächste Anwender schon auf einen freiwerdenden Platz wartet. Ist dem aber nicht so, kann der Rechner doch ruhig runtergefahren werden, sooo lang dauert ein Neustart doch auch wieder nicht...
Nun ja, das Hauptproblem dabei ist: Wenn ich in den Schulferien erstmals in die Computerräume komme, um dort etwas zu richten, kann ich mir sicher sein, dass vom letzten Schultag her in jedem Raum noch 2-3 Rechner an sind, von den Monitoren und Druckern ganz zu schweigen. Wie kann ich erstere automatisch herunterfahren?

Lösungsansatz 1:

Ich aktiviere im Administrator-Account die Bildschirmschonerfunktion und darin die Energiesparfunktion von XP. Nachteil: das Herunterfahren funktioniert nur unzuverlässig, vor allem, wenn sich die Schüler/Kollegen nicht ausloggen.

Lösungsansatz 2:

Der XP-Befehl shutdown.exe

In der schan-user-Liste für Arktur kam ein Hinweis, dass die Datei shutdown.exe aus dem Ressource-Kit für Win2k von MS das Problem beheben könnte. Tut sie auch, allerdings ist der Befehl in WinXP bereits eingebaut, das Ressource-Kit also überflüssig.
Achtung! Die Parameter für den Befehlszeilenaufruf der Datei haben sich bei WinXP geändert! Außerdem ist jetzt die GUI in shutdown.exe eingebaut (Aufruf über shutdown /i), die alte Datei shutgui.exe ist damit obsolet.
Damit ist jetzt das Herunterfahren des Rechners gelöst:
shutdown /s /f /t 300 /c "Die Schule wird um 18 Uhr abgeschlossen. Bitte beenden Sie Ihre Arbeit!"
Erklärung:
  • /s: der Rechner wird Heruntergefahren (/r steht dann für Neustart/reboot).
  • /f: eventuell geöffnete Programme werden radikal gekillt.
  • /t 300: der Anwender erhält eine "Vorwarnzeit" von 300 Sekunden. In dieser Zeit liegt ein Fenster mit einer fest vorgegebenen und einer frei konfigurierbaren Meldung sowie einem Countdown im Vordergrund, der Anwender hat die Möglichkeit, seine Daten in dieser Zeit zu sichern.
  • /c "....": zwischen den Anführungszeichen steht die später im Fenster angezeigte frei konfigurierbare Meldung.

Aber wie steuere ich die Zeit, zu der das Herunterfahren erfolgen soll?

Lösungsansatz 2a:

Der XP-Befehl at

XP kennt den Kommandozeilen-Befehl at (genausogut kann man auf GUI-Ebene natürlich gleich den Taskplaner verwenden, at füttert diesen einfach mit Befehlen). Mit diesem lassen sich recht differenziert Tasks auf dem Rechner planen.

Ein konkretes Beispiel:
Ich möchte an jedem Tag um 17:45 Uhr, eine Viertelstunde von Schließung der Schule, den shutdown-Vorgang einleiten:
at 17:45 /interactive /every Mo,Di,Mi,Do,Fr,Sa,So shutdown /s /f /t 300 /c "Die Schule wird um 18 Uhr abgeschlossen. Bitte beenden Sie Ihre Arbeit!"
Erklärung:
  • 17:45 : zu dieser Zeit soll das shutdown-Task beginnen.
  • /interactive: Das Task soll mit dem momentan aktiven Benutzer kommunizieren. Hab nicht ausprobiert, ab das in unserem Fall von Belang ist, schadet aber auch nichts.
  • /every Mo,Di,...: Das Task wird an jedem Wochentag gestartet. Hier kann ich natürlich auch nur bestimmte Wochentage auswählen, ein bestimmtes Datum nehmen usw. Alternativ gibt es noch den Schalter /next zur einmaligen Ausführung des Tasks an einem bestimten Tag.
  • shutdown...: an dieser Stelle beginnt der eigentliche Befehl, wieder mit einer ganzen Reihe von Schaltern am Ende - Erklärung s.o.
Jetzt bleibt noch das Problem: wie bekomme ich diesen Befehl auf meine 60 XP-Rechner? Hier wurde ich enttäuscht. Sowohl bei shutdown wie bei at gibt es die Möglichkeit, einen remote-Computer als Ziel des Befehls anzugeben.
Zum Herunterfahren eines remote-Computers muss der "Auftraggeber" an diesem Rechner lokal das Recht zum Herunterfahren besitzen (einstellbar über die Anwenderrechte in der gpedit.msc). Das funktioniert unter Arktur mit dem User adm dann auch, sobald dieser in der gpedit die Rechte bekommen hat.
Aber es funktionierte bei meinen Versuchen nicht beim Befehl at, ich konnte mir nie die benötigten Rechte verschaffen (und wusste auch nicht, wo danach suchen).

Lösungsansatz 2b:

Eine kleine Batch-Datei

Wenn der Admin keinen Bock mehr hat, nach einer "eleganten" Lösung zu suchen, schraubt er sich eine Batch-Datei mit obigem Befehl zusammen, geht an seine 60 Rechner, loggt sich jeweils als Administrator ein, führt die Batch-Datei aus - und fertig.

Fortan sollten mich in den Ferien keine laut surrenden Computerräume an unserer Schule mehr empfangen.


Keine Kommentare: