0cool
Goto Top

vbs shutdown

Hey Leute,

ich will das mein PC am Ende eines VPS scriptes runterfährt. Ich hatte mal ein script das das gemacht hat leider finde ich das script nicht mehr und im netz hab ich auch nix gefunden.
Ich brauch keine lästigen abfragen oder änliches ich will nur wie schon gesagt das der PC runterfährt wenn mein script ausgeführt wurde.
Mein plan war das ich am ende von meinem script den Befehl zum runterfahren eingebe, ich weiss nur noch das der Befehl shutdown dazu verwendet wird aber nicht mehr mit welchen parametern oder ob ich noch eine bedingung mitgeben muss.
Das ganze soll offline geschehen.

Mein OS ist winxp

Danke für eure hilfe

0cool

Content-ID: 37565

Url: https://administrator.de/contentid/37565

Ausgedruckt am: 08.11.2024 um 17:11 Uhr

MonsterX
MonsterX 08.08.2006 um 14:54:02 Uhr
Goto Top
Hier steht was dazu:

http://www.cruto.com/resources/vbscript/vbscript-examples/desktop/state ...

//edit
Oder per Kommandozeile und VBS:

http://www.computerperformance.co.uk/ezine/ezine45.htm

und im netz hab ich auch nix gefunden.

Google: vbs shutdown computer -> erster Treffer!

MFG,
Denis Hierholzer
0cool
0cool 08.08.2006 um 15:10:05 Uhr
Goto Top
das muss doch auch einfacher gehn

geht das nicht so in die richtung wie bei ner batch datei??

shutdown.exe -t 00 -s

es muss doch eine möglichkeit geben am ende von meinem script einen shutdown befehl oder so etwas ähnliches dran zuhängen ohne das ich gleich mit abfragen arbeiten muss.

Kenn da einer von euch ne lösung??
MonsterX
MonsterX 08.08.2006 um 15:18:58 Uhr
Goto Top
Wenn du dich ein bißchen mit VBS auskennst und du dir den zweiten Link (das mit der Kommandozeile) mal genauer angeschaut hast, wirst du feststellen, dass es genau das ist, nach dem du gefragt hast. Nur dass in dem Beispiel eben noch ein bißchen Code außen rum steht.

Das Wesentliche was du davon brauchst ist:

Set objShell = CreateObject("WScript.Shell")
objShell.Run "cmd"
Wscript.Sleep 100
objShell.SendKeys "shutdown -s -t 10"
Larz
Larz 08.08.2006 um 15:25:01 Uhr
Goto Top
ich weiss nur noch das der Befehl shutdown
dazu verwendet wird aber nicht mehr mit
welchen parametern oder ob ich noch eine
bedingung mitgeben muss.
shutdown -s -m \\RECHNERNAME (falls Du remote herunterfahren möchtest)

Das ganze soll offline geschehen.
Was soll das bedeuten?

Gruß
Larz
0cool
0cool 08.08.2006 um 15:27:06 Uhr
Goto Top
@MonsterX: das ist das Problem ich kenn mich vbs zu wenig aus
danke
Biber
Biber 08.08.2006 um 15:31:13 Uhr
Goto Top
@Larz
Das ganze soll offline geschehen.

Was soll das bedeuten?

Der Rechner ist schon vorher aus.
Konnte ich mir nicht verkneifen...*g
Larz
Larz 08.08.2006 um 15:55:11 Uhr
Goto Top
Der Rechner ist schon vorher aus.

Also das verstehe ich nun wirklich nicht, Du willst einen Rechner per Script runterfahren der bereits aus ist... face-big-smile

Wenn sich der Rechner selbst herunterfahren soll, sind die Parameter -s und ggf. -t xx zu verwenden, wenn ein anderer Rechner im Netz heruntergefahren werden soll, dann verwende zusätzlich -m \\RECHNERNAME
0cool
0cool 08.08.2006 um 17:04:09 Uhr
Goto Top
@Biber: der rechner ist nicht schon vorher aus
@lars: offline besser gesagt local. damit wollte ich nur sagen das ich damit nicht andere rechner runterfahren will sondern das script wird auf meinem rechner ausgeführt und soll dann auch meinen rechner runterfahren
Larz
Larz 08.08.2006 um 17:11:57 Uhr
Goto Top
also in dem Fall

shutdown -s

und fertig
0cool
0cool 08.08.2006 um 17:29:48 Uhr
Goto Top
soweit hat es jetzt geklappt. Was mich noch stört das ich den befehl bestätigen muss das heißt wenn das vbs script beendet ist kommt ein comandozeilenfenster mit dem befehl shutdown zum vorschein, dann muss ich enter drücken damit dieser befehl ausgeführt wird. gibt es eine möglichkeit das zu umgehn?
Ich will nicht jedesmal bestätigen müssen.
verkehrsberuhigt
verkehrsberuhigt 08.08.2006 um 18:28:05 Uhr
Goto Top
*
MonsterX
MonsterX 08.08.2006 um 19:09:16 Uhr
Goto Top
Angeknüpft an das Skript-Snipplet von mir von vorhin einfach folgende Zeile dran hängen:

objShell.SendKeys "{ENTER}"
0cool
0cool 08.08.2006 um 19:20:17 Uhr
Goto Top
@MonsterX: Danke Jetzt funktioniert alles so wie ich es will
cor35vet
cor35vet 02.01.2009 um 15:49:23 Uhr
Goto Top
Set objShell = CreateObject("WScript.Shell")
objShell.Run "cmd"
Wscript.Sleep 100
objShell.SendKeys "shutdown -s -t 10"
objShell.SendKeys "{ENTER}"
objShell.SendKeys "exit"
objShell.SendKeys "{ENTER}"
Dann schliest sich das Dos Fenster noch.
bastla
bastla 04.01.2009 um 00:35:40 Uhr
Goto Top
Hallo cor35vet und willkommen im Forum!
Dann schliest sich das Dos Fenster noch.
So geht's erst gar nicht auf (und ein CMD-Fenster auch nicht face-wink):
Set objShell = CreateObject("WScript.Shell")  
objShell.Run "shutdown -s -t 00", 0  
Grüße
bastla

P.S.: Schön, dass auch schon etwas betagte Threads nicht ganz in Vergessenheit geraten ... face-wink
cor35vet
cor35vet 04.01.2009 um 10:06:25 Uhr
Goto Top
Naja mir hats sehr viel geholfen ,dass dieser Thread überhaupt existiert obwohl mein Problem war Anfangs ja das:
Set objShell = CreateObject("WScript.Shell")
objShell.Run "shutdown -s -t 15 -c "Text""

Und der Computer denkt dann das der Befehl so aussieht:
objShell. Run "shutdown -s -t 15 -c "

So hab ich es auch versucht:
objShell.Run """shutdown -s -t 15 -c "Text""""
Und dann die Fehlermeldung 'Anweisungsende Erwartet'

Oder so:
objShell.Run("""shutdown -s -t 15 -c "Text"""")

Und dann sagt er mir das eine Klammer kommt dann sieht das so aus:
objShell.Run("shutdown -s -t 15 -c ")
Aber das brauch ich nich (blöder computer!)

Naja also mit dem Comment krieg ich das nich hin (-c "Text")
Bei Batch war das ales viel einfacher vbs ist (leider) nich so leicht

Gruss cor35vet
bastla
bastla 04.01.2009 um 11:07:26 Uhr
Goto Top
Hallo cor35vet!

Vorweg: Zum Posten von Codebeispielen hätten wir hier eine passende ...

Ansonsten: Schreib doch einfach für jedes innerhalb eines Textes benötigte Anführungszeichen zwei davon:
objShell.Run "shutdown -s -t 15 -c ""Test"""
Grüße
bastla
cor35vet
cor35vet 04.01.2009 um 11:25:42 Uhr
Goto Top
Danke hat funktioniert face-smile

Witzig das mir das nich eingefallen is?
Hab stundenlang rumprobiert

Gruss cor35vet