Shutdown Script mit VBS
Hallo!
Gegeben ist folgende Situation. In unserer Firma gibt es einen Mitarbeiter der Ständig zwischen Außendienst und Innendienst unterwegs ist. Oft ist der Fall dass er Abends nicht mehr in die Firma kommt um seinen Rechner Auszuschalten. Hierzu habe ich ein Shutdown Script geschrieben das um 18:00 Uhr über einen Geplanten Task den Computer herunterfährt.
'Shutdown-Script
set objShell = CreateObject("WScript.Shell")
Set shella = WScript.CreateObject ("Shell.Application")
shella.MinimizeAll
Dim objShell
objShell.Run "cmd /C shutdown -s -t 30"
if msgbox("Der Computer wird in 30 Sek. automatisch heruntergefahren. Abbrechen?", vbyesno+vbinformation, "Herunterfahren")=vbyes then
objShell.Run "cmd /C shutdown -a"
end if
Leider wird das Script aber nur einmalig ausgeführt, der Task läuft dann weiter und wird nicht erneut ausgeführt. Dies muss eine Rechtegeschichte sein, da der Task mit dem Administrator Benutzer angelegt ist.
Ich hatte mir überlegt, das Script einfach in den Autostart einzubinden und im Script selbst eine Zeitabfrage zu machen die dann um 18 Uhr die den Shutdown-Vorgang einleitet.
Gibt es eine Möglichkeit so eine Zeitabfrage zu machen? Damit wäre mir sehr geholfen. Natürlich bin ich auch für andere Lösungsvorschläge gerne offen.
Gruß
Flo
Gegeben ist folgende Situation. In unserer Firma gibt es einen Mitarbeiter der Ständig zwischen Außendienst und Innendienst unterwegs ist. Oft ist der Fall dass er Abends nicht mehr in die Firma kommt um seinen Rechner Auszuschalten. Hierzu habe ich ein Shutdown Script geschrieben das um 18:00 Uhr über einen Geplanten Task den Computer herunterfährt.
'Shutdown-Script
set objShell = CreateObject("WScript.Shell")
Set shella = WScript.CreateObject ("Shell.Application")
shella.MinimizeAll
Dim objShell
objShell.Run "cmd /C shutdown -s -t 30"
if msgbox("Der Computer wird in 30 Sek. automatisch heruntergefahren. Abbrechen?", vbyesno+vbinformation, "Herunterfahren")=vbyes then
objShell.Run "cmd /C shutdown -a"
end if
Leider wird das Script aber nur einmalig ausgeführt, der Task läuft dann weiter und wird nicht erneut ausgeführt. Dies muss eine Rechtegeschichte sein, da der Task mit dem Administrator Benutzer angelegt ist.
Ich hatte mir überlegt, das Script einfach in den Autostart einzubinden und im Script selbst eine Zeitabfrage zu machen die dann um 18 Uhr die den Shutdown-Vorgang einleitet.
Gibt es eine Möglichkeit so eine Zeitabfrage zu machen? Damit wäre mir sehr geholfen. Natürlich bin ich auch für andere Lösungsvorschläge gerne offen.
Gruß
Flo
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 107464
Url: https://administrator.de/forum/shutdown-script-mit-vbs-107464.html
Ausgedruckt am: 10.04.2025 um 02:04 Uhr
9 Kommentare
Neuester Kommentar

Moinsen,
nimm einen Server, eine Liste der Systeme und aus den Pstools PSShutdown und steuere das herunterfahren der Clients zentral.
Die Liste kannst du auch aktiv selbst (vom Server) erzeugen oder mit Wildcard arbeiten.
Gruß
nimm einen Server, eine Liste der Systeme und aus den Pstools PSShutdown und steuere das herunterfahren der Clients zentral.
Die Liste kannst du auch aktiv selbst (vom Server) erzeugen oder mit Wildcard arbeiten.
Gruß

Zitat von @MaVdee:
Das Problem ist, wenn der Admin die Parameter eines Werkzeugs nicht mit /? aufrufen kann
Das Problem ist, wenn der Admin die Parameter eines Werkzeugs nicht mit /? aufrufen kann
Stimmt - da gebe ich dir Recht -c -m usw. wärs gewesen.
Gruß

Servus und sorry,
dann noch mal ganz von vorne - mittlerweile hab ich auch meinen Kaffee
Wenn ich dich jetzt richtig verstanden habe - läuft das Vbs noch?
Wenn ja - versuchs mal mit einem:
Wenn nein - immer noch nicht verstanden - dann bitte nochmal genauer erklären, wo der Schuh drückt.
(Wobei das Script ja auch keine "Schleife" hat - um nach "Nein" nochmal hochzukommen.)
Gruß
dann noch mal ganz von vorne - mittlerweile hab ich auch meinen Kaffee
Leider wird das Script aber nur einmalig ausgeführt, der Task läuft dann weiter und wird nicht erneut ausgeführt.
Wenn ich dich jetzt richtig verstanden habe - läuft das Vbs noch?
Wenn ja - versuchs mal mit einem:
Set WshShell = Nothing
Am Ende des vbs.Wenn nein - immer noch nicht verstanden - dann bitte nochmal genauer erklären, wo der Schuh drückt.
(Wobei das Script ja auch keine "Schleife" hat - um nach "Nein" nochmal hochzukommen.)
Gruß

Benutzt du Login Skripte?
Wenn ja, würd ich das Vbs mit einer Batch verbinden. Bzw. eigentlich "immer"
"So" richtest du - bzw. der User beim anmelden - schön das vbs um 18:00 für ein deutsches OS ein und durch den Schalter /interaktiv bekommt er auch was auf den Schirm.
Und wenn du das per Loginskript realisieren kannst und der User die rechte hat - dann evtl. noch ein:
davor gestellt.
Try it
Gruß
Wenn ja, würd ich das Vbs mit einer Batch verbinden. Bzw. eigentlich "immer"
1
at \\%computername% 18:00 /interactive /every mo,di,mi,do,fr "laufwerk:\pfad\mein.vbs"
"So" richtest du - bzw. der User beim anmelden - schön das vbs um 18:00 für ein deutsches OS ein und durch den Schalter /interaktiv bekommt er auch was auf den Schirm.
Und wenn du das per Loginskript realisieren kannst und der User die rechte hat - dann evtl. noch ein:
1
at |find "Es sind keine" && AT \\%computername% 18:00 /interactive /every mo,di,mi,do,fr "laufwerk:\pfad\mein.vbs"
Try it
Gruß
Moin Moin
Ich frage mich gerade mit was für Rechten deine "User" ausgestattet sind.
So wie ich das sehe kann der gemeine Benutzer shutdown.exe nicht verwenden, um das, durch einen Admin "angeordnete" Heruterfahren abzubrechen.
Und das ist auch gut so.
So wie ich das sehe wird sich deine Anforderung mit der Shutdown.exe nicht realisieren lassen.
Also auch nicht als startskript was um 18:00 nachfragt.
Ich würde mir die sache einfacher machen.
Kläre mit der GL eine Uhrzeit ab, ab der nicht mehr gearbeitet werden sollte. Und fahre diese PC Servergesteuert herunter. Fertig
Gruß L.
Ich frage mich gerade mit was für Rechten deine "User" ausgestattet sind.
So wie ich das sehe kann der gemeine Benutzer shutdown.exe nicht verwenden, um das, durch einen Admin "angeordnete" Heruterfahren abzubrechen.
Und das ist auch gut so.
Wenn der Task ausgeführt wird wenn der User angemeldet ist, erscheint die Msgbox nicht, das hängt offensichtlich damit zusammen das der Task als administrator und nicht als user ausgeführt wird. Trägt man beim erstellen des Tasks nämlich den User ein, erscheint auch die Msgbox.
Lässt sich das irgendwie umgehen?
Lass mich überlegen: Kann ein User in den Ausführungskontext eines Administrators schauen? Nö. Das ist ebenfalls gut so.Lässt sich das irgendwie umgehen?
So wie ich das sehe wird sich deine Anforderung mit der Shutdown.exe nicht realisieren lassen.
Also auch nicht als startskript was um 18:00 nachfragt.
Ich würde mir die sache einfacher machen.
Kläre mit der GL eine Uhrzeit ab, ab der nicht mehr gearbeitet werden sollte. Und fahre diese PC Servergesteuert herunter. Fertig
Gruß L.