drobskind
Goto Top

Shutdown Meldung mit Countdown und Abbruchmöglichkeit

Hallo zusammen.

Die Suchfunktion und Google haben leider meine Problemstellung nicht lösen können.

Also zum Problem.

ich habe einige PCs in einem Netzwerk und einen Server.
der Server fährt um 20 Uhr in den Ruhezustand wenn alle PCs ausgeschaltet sind.
Sollte vergessen worden sein ein PC herunterzufahren läuft auch der Server die Nacht durch.

Da jedoch nicht auszuschließen ist, dass um 20 Uhr noch jemand am PC arbeitet, kann ich nicht einfach ein shutdown per Task anstoßen.

Meine Idee ist nun: (möglichst mit Bordmitteln vbs,whs,bat...)

Auf dem PC wird um 20 Uhr ein Task ausgeführt.
dieser blendet eine MessageBox ein
in dieser MessageBox steht ein beliebiger Text.
in der MSGBOX tickt auch ein Countdown herunter (also kein Fixtext)
Dieser Countdown kann mit einem Button abgebrochen werden.

Beispiel:
ab65e6d4cef45b6a18fead1a8d953c78

Content-ID: 143114

Url: https://administrator.de/forum/shutdown-meldung-mit-countdown-und-abbruchmoeglichkeit-143114.html

Ausgedruckt am: 23.12.2024 um 03:12 Uhr

manuel-r
manuel-r 19.05.2010 um 11:45:32 Uhr
Goto Top
Du könntest bspw. dieses Script auf den PCs als geplanten Task ab 20 Uhr laufen lassen. Eventuell auch noch gekoppelt mit halbstündiger Wiederholung.
Set oShell = CreateObject("WScript.Shell")  
oShell.Run "shutdown -s -f -t 300" , 0, False  

intConf = _
    Msgbox("Möchten Sie das Herunterfahren Ihres PCs abbrechen?", vbYesNo, "Shutdown")  

If intConf = vbYes Then
    oShell.Run "shutdown -a" , 0, False  
    Msgbox "Ok. Herunterfahren wurde abgebrochen."  
Else
    Msgbox "Ok. Herunterfahren wird fortgesetzt."  
End If
MASTEQ
MASTEQ 19.05.2010 um 11:46:44 Uhr
Goto Top
Hi,

schau mal hier:

http://www.pa-s.de/php/forum/showpost-1215.php

ist glaube ich das einfachste.....befehl Shutdown.exe -i gibt dir ne Gui in der du einiges einstellen kannst.

Ansonsten per Skript den Shutdown mit dem Parameter -a abbrechen!

Gruß

MASTEQ
MASTEQ
MASTEQ 19.05.2010 um 11:47:33 Uhr
Goto Top
oder so gehts auch face-wink Ich hatte gerade einfacher gedacht....
dave114
dave114 19.05.2010 um 11:56:03 Uhr
Goto Top
morgen,

mich würde interessieren wie du vom Server aus prüfst ob alle PC's heruntergefahren sind?

mfg
David
manuel-r
manuel-r 19.05.2010 um 12:02:14 Uhr
Goto Top
Per VBScript alle Computerobjekte aus dem AD (bzw. einer OU) holen und der Reihe nach anpingen. Wenn keiner eine Antwort liefert Server runterfahren. Sollte kein großes Problem darstellen...
drobskind
drobskind 19.05.2010 um 12:25:00 Uhr
Goto Top
Hallo manuel-r,

vielen Dank für deinen Vorschlag.
dieser ist zwar ganz gut gelöst, jedoch noch nicht ganz das was ich benötige.

Das Script ruft nun den Shutdownbefehl mit einem 300 Sekunden Timer auf.

und ein zusätzliches Abfragefenster (welches bei mir vom Shutdownfenster überlagert wird)
Beim klick auf Abbrechen führt das Script dann "Shutdown -a" aus.

jedoch möchte ich nicht unbedingt den shutdown befehl aufrufen sonder unter umständen auch "rundll32.exe powrprof.dll,SetSuspendState"
die lässt jedoch keinen Countdown bzw Abbruch zu.

Somit sollte das Script einen Countdown liefern und ERST DANN den gewünschten Befehl ausführen.

eine weitere Möglichkeit die mir eingefallen ist wäre noch das Tool PsShutdown.
damit könnte ich vom Server aus den Shutdown Befehl mit Abbruchmöglichkeit und Countdown geben -> JEDOCH sind die Clients alle Win XP HOME


@ Dave114
Ich habe hier einen Windows Home Server zu laufen mit dem Plugin "Lights Out" auf den Client PCs ist der "Lights Out Client" installiert. Darüber wird die Überwachung erledigt.
manuel-r
manuel-r 19.05.2010 um 12:58:36 Uhr
Goto Top
Du brauchst mir mein eigenes Script nicht zu erklären face-confused
Es war auch nur als Denkansatz gedacht. Wenn dir das so nicht gefällt kein Problem. Musst du halt weiter suchen...
Ganz Quick&dirty könntest du auch einen geplanten Task einrichten, der als Trigger idle verwendet. Dann wird der Task nach Zeit x ausgeführt, wenn der PC keine Beschäftigung hat.
Oder du legst auf den Desktop einfach eine Verknüpfung mit dem Ziel shutdown -a. Damit kann der User dann ein geplantes Herunterfahren jederzeit abbrechen.

BTW:
So wie es sich anhört befinden wir uns in einer Home-Umgebung mit einer mehr als überschaubaren Anzahl an PCs und Usern. In der Umgebung gehe ich allerdings auch davon aus, dass es durchaus nicht zuviel verlangt sein kann, wenn Mama, Papa, Kinder ihren PC ausmachen bevor sie ins Bett gehen.
drobskind
drobskind 19.05.2010 um 13:12:21 Uhr
Goto Top
Ich habe jetzt eine Möglichkeit gefunden, die meine Wünsche relativ gut erfüllt.

Das Tool PsShutdown lässt sich auch local aufrufen.
Da ich eh mit Tasks arbeiten wollte funktioniert es nun wie folgt:

Task startet psshutdown -c -h -t 900 -m "Der Computer wird aufgrund der spaeten Stunde ausgeschaltet. Wenn Sie weiterarbeiten moechten klicken sie auf Abbrechen."
Durch die übergebenen Parameter bekomme ich alle nötigen Dinge geboten.

-c Abbruchmöglichkeit
-h Ruhezustand
-t Countdown in sec
-m Nachricht an den Benutzer

Ja, es hört sich nach einem privatem Netzwerk an. Es handelt sich aber um ein kleines Firmennetzwerk mit einem Server und 5 Client-PC.
Da diese Rechner einzeln und möglichst günstig eingekauft werden wurde am XP prof gespart. XP Home reicht ja für sogut wie alle Anwendungsfälle.
Es kommt leider ab und an vor, dass Rechner nicht heruntergefahren werden.
manuel-r
manuel-r 19.05.2010 um 13:19:29 Uhr
Goto Top
Ja, es hört sich nach einem privatem Netzwerk an

Es handelt sich aber um ein kleines Firmennetzwerk

Ich habe hier einen Windows Home Server zu laufen

wurde am XP prof gespart. XP Home reicht ja für sogut wie alle Anwendungsfälle

Kann mal bitte jemand meinen Kopf festhalten, der wackelt ganz furchtbar. Aber bitte aufpassen, dass er nicht auf die Tischplatte knallt face-wink
DerWoWusste
DerWoWusste 19.05.2010 um 14:46:55 Uhr
Goto Top
Du musst aber berücksichtigen, dass man mit Benutzerrechten weder psshutdown nutzen kann um Runterzufahren, noch um Abzubrechen.
Es muss also zwangsläufig mit anderen Benutzerrechten gearbeitet werden zum Beispiel über geplante Tasks.