Shutdown

  • VBScript

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von Ovi.

    [VBS]Shutdown

    Hi zusammen.

    Ich hab folgende Frage.
    Ich hab auf meinem PC WinXP Prof installiert und arbeite meist mit einem Konto, das Hauptbenutzer ist.
    Jetzt hätte ich dafür aber gern ein VB Script, dass meinen PC runterfahren kann.

    Shutdown kann ich als Hauptbenutzer nicht verwenden, da mir dafür die nötigen Rechte fehlen, die ich mir aber da auch nicht geben möchte. (Aus Sicherheitsgründen)

    Kann mir hier vielleicht jemand weiterhelfen?


    MfG
    Xtreem

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Xtreem“ ()

    Ich bin gerade daran meinen Shutdown-script zu überarbeiten, will noch mehr funktionen ein arbeiten (auswahlmöglichkeit von Herunterfahren und Neustart....etc.)
    Ich habe gerade die Möglichkeit der wiederholung per GoTo eingearbeitet weiß aber noch nicht ob das richtig funtzt da ich hier am MaC OSX sitze und daher ohne test möglichkeit schreibe.

    Aber wenn du noch interesse hast an einem Shutdown der per zeitangabe herunter fährt, dann kopiere dir mal das hier (ich habe mal alle zusätzlichen modifikationen heraus gelöscht, so das du nur eine Uhrzeit eingeben kannst, achtung der VBS arbeitet nur 24 stunden weise, also keine angaben über einen Tag hinaus möglich)::::

    Viel spaß damit, wenn ich meine erweiterungen dann alle getestet und debugged habe dann stell ich den gerne bereit ;)
    Set shell = CreateObject("WScript.Shell")


    If WScript.Arguments.Count >0 Then
    zeit = WScript.Arguments(0)
    Else
    zeit = InputBox("Wann soll der PC heruntergefahren"&_
    "werden?" & vbCR & "Eingabe: <hh>:<mm>" &vbCR &_
    "z.B. 23:12","Shutdown")
    End If

    On Error Resume Next
    If Len(Zeit) <> 5 OR Mid(zeit,3,1) <> ":"_
    OR Fix(Mid(zeit,1,2)) > 24 OR Fix(Mid(zeit,4,2)) >59_
    OR Err<>0 Then
    MsgBox "Falsche Zeitangabe!"
    WScript.Quit
    End If
    On Error Goto 0

    pzeit = Split (zeit,":")
    pstunden = pzeit(0)
    pminuten = pzeit(1)

    azeit = Split(Left(Time,5),":")
    astunden = azeit(0)
    aminuten = azeit(1)

    diffstunden = pstunden-astunden
    If diffstunden <0 Then diffstunden = diffstunden + 24
    diffminuten = pminuten-aminuten
    If diffminuten <0 Then
    diffminuten = diffminuten + 60
    diffstunden = diffstunden - 1
    End If

    antwort = shell.popup("Der Pc wird in " & diffstunden &_
    "Stunden und " & diffminuten & " Minuten heruntergefahren" & vbCR &
    "(Fenster bestätigt sich nach" &vbCR &_
    "30 Sekunten selbständig)",_
    30,"Shutdown-Planer",1)
    If antwort = 2 Then WScript.Ouit

    zeit = (diffstunden * 3600000)+(diffminuten * 60000)
    WScript.Sleep zeit

    antwort = shell.Popup("Der Rechner wird jetzt " &_
    " heruntergefahren!"
    "(Fenster bestätigt sich nach" &vbCR &_
    "30 Sekunten selbständig)"
    ,30,"Shutdown steht bevor!",1)
    If antwort = 2 Then WScript.Quit

    shell.Run "shutdown.exe -s -t 1"
    aber evtl. kann mir noch einer sagen wie der befehl für den restart bei windows ist ? reboot.exe ? ;D
    Es gibt noch viele andere Argumente für die Shutdown.exe

    Quellcode

    1. /? Zeigt die Hilfe an. Dies entspricht einer Eingabe ohne Optionen.
    2. /i Zeigt eine grafische Benutzeroberfläche an.
    3. Dies muss die erste Option sein.
    4. /l Abmelden. Dies kann nicht mit den Optionen /m oder /d verwendet
    5. werden.
    6. /s Fährt den Computer herunter.
    7. /r Fährt den Computer herunter und startet ihn neu.
    8. /g Fährt den Computer herunter und starten ihn neu. Nach dem
    9. Neustart des Systems werden die registrierten Anwendungen neu
    10. gestartet.
    11. /a Bricht das Herunterfahren des Systems ab. Diese Option kann nur
    12. während der Zeitüberschreitungsperiode verwendet werden.
    13. /p Schaltet den lokalen Computer ohne Zeitlimitwarnung aus.
    14. Kann mit den Option /d und /f verwendet werden.
    15. /h Versetzt den lokalen Computer in den Ruhezustand.
    16. Kann mit der Option "/f" verwendet werden.
    17. /e Dokumentiert die Ursache für das unerwartete Herunterfahren
    18. eines Computers.
    19. /m \\Computer Legt den Zielcomputer fest.
    20. /t xxx Legt die Zeitüberschreitungsperiode vor dem Herunterfahren auf
    21. xxx Sekunden fest. Der gültige Bereich ist von 0-600, der
    22. Standardwert ist 30. Die Verwendung von "/t xxx" setzt voraus,
    23. dass die Option "/f" verwendet wird.
    24. /c "Kommentar" Kommentar bezüglich des Neustarts bzw. Herunterfahrens.
    25. Es sind maximal 512 Zeichen zulässig.
    26. /f Erzwingt das Schließen ausgeführter Anwendung ohne Vorwarnung
    27. der Benutzer. /f wird automatisch angegeben, wenn die Option
    28. /t xxx verwendet wird.
    29. /d [p|u:]xx:yy Gibt die Ursache für den Neustart oder das Herunterfahren
    30. an. "p" gibt an, dass der Neustart oder das Herunterfahren
    31. geplant ist. "u" gibt an, dass die Ursache vom Benutzer
    32. definiert ist. Wenn weder "p" noch "u" angegeben ist, ist das
    33. Neustarten oder Herunterfahren nicht geplant.
    34. "xx" ist die Hauptgrundnummer (Zahl kleiner als 256).
    35. "yy" ist die Nebengrundnummer (Zahl kleiner als 65536).
    ja lol das man in der Steuerkonsole das auch nachsehen kann ist mir dato nicht eingefallen XD

    Und wieso sollte man als Hauptbenutzer shutdown.exe nicht verwenden können ? habe das script schon auf vielen anderen Rechnern getestet und auch unter anderen Benutzern und es hat immer geklappt, zwar wird das vom System als unzulässiger Zugriff angezeigt, aber die anwendung wird durchgeführt, quasi erzwungen
    Als Hauptbenutzer funktioniert das nicht richtig, bei mir meldet er mich wenn ich es ohne weitere Argumente angebe nur ab.
    Bei Argumenten kommt das:


    Und er fährt dann nach 10 sekunden nicht herunter..
    Das ist meine Signatur und sie wird wunderbar sein!
    jipp das problem kenn ich, habe selber mal die funktionen durch probiert und bin damals nur beim anmeldebildschirm gelandet.
    Allerdings hatte ich das mit dem Script noch nie, ka wieso das so ist :huh: , allerdings kommt mein Script eine Fehlermeldung - vonwegen nicht korekte anwendung etc. und fährt den rechner nach angegebener Zeit aber runter ^^ 8| und solange er das macht bin ich damit recht zufrieden :D

    Kopier mal denn Script wie er oben seht und probier mal aus obs dann bei dir klappt (einfach in den texteditor kopieren und als .vbs abspeichern)
    aber mal ne andere sache

    will im Script eine Möglichkeit schaffen zwischen Herunterfahren und Neustart zu wählen

    Und das einfachste das da wäre, wäre ja eine simple abfrage, hab aber keinen plan wie ich das mit der Inputbox mache, habe mir da was gedacht aber das kann eigendlich nicht hinhauen:

    Set shell = CreateObject("WScript.Shell")

    If WScript.Arguments.Count >0 Then
    auswahl = WScript.Arguments(0)
    Else
    auswahl = InputBox("Option auswählen" & vbCR &_
    "" & vbCR & "1 = Herunterfahren" &vbCR &_
    "2 = Neustart","Shutdown/Neustart")
    End If

    On Error Resume Next
    If Len(auswahl)=1 Then GoTo Shutdown
    OR Len(auswahl)=2 Then Goto Neustart
    OR Err<>0 Then
    MsgBox "Falsche Zeitangabe!"
    WScript.Quit
    End If
    On Error Goto 0
    so wie es jetzt ist würde er ja nicht auf eine eingabe warten von 1 oder 2, sondern auf eine bestätigung der Buttoms OK und Abbrechen
    Und habe das so modifiziert.

    On Error Resume Next

    If Len(auswahl)=<>1 Then GoTo Shutdown

    OR Len(auswahl)=<>2 Then Goto Neustart

    OR Err<>0 Then

    MsgBox "Falsche Zeitangabe!"

    WScript.Quit

    End If

    On Error Goto 0
    so jetzt fragt heißt es ja eigendlich wenn er eine zahl bekommt die genau 1 ist dann .... oder 2 dann ...
    oder ???
    Bin gerade an einem Mac kann daher das nicht ganz überprüfen. ;( und bin auch schon etwas aus der matierie :S

    Wenn das nicht funtzt und jemand mir einen anderen Tipp geben kann dann bitte immer her damit :D
    hhmm wäre möglich wenn ich alles andere verwerfen will ^^oder die grundidee

    Was ich suche ist eher eine Tasten zuweisung:
    msgbox "Drücken sie die Taste um folgende Optionen aus zu führen:" & vbCR &_
    " S um den Rechner herunter zu fahren" & vbCR &_
    " N um den Rechner neu zu starten", "Neustart/Shutdown"

    so hier müste dann kommen das S ----> goto shutown:
    und N zu -------> goto neustart:
    führt.
    If ?????%%% = S then goto shutdown or
    ?????%%%% = N then goto neustart
    end if
    mir fehlt die Tasten zuweisung also, weiß wer wie das funzt :?: