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-Key: 37565

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

Printed on: April 24, 2024 at 12:04 o'clock

Member: MonsterX
MonsterX Aug 08, 2006 at 12:54:02 (UTC)
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
Member: 0cool
0cool Aug 08, 2006 at 13:10:05 (UTC)
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??
Member: MonsterX
MonsterX Aug 08, 2006 at 13:18:58 (UTC)
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"
Member: Larz
Larz Aug 08, 2006 at 13:25:01 (UTC)
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
Member: 0cool
0cool Aug 08, 2006 at 13:27:06 (UTC)
Goto Top
@MonsterX: das ist das Problem ich kenn mich vbs zu wenig aus
danke
Member: Biber
Biber Aug 08, 2006 at 13:31:13 (UTC)
Goto Top
@Larz
Das ganze soll offline geschehen.

Was soll das bedeuten?

Der Rechner ist schon vorher aus.
Konnte ich mir nicht verkneifen...*g
Member: Larz
Larz Aug 08, 2006 at 13:55:11 (UTC)
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
Member: 0cool
0cool Aug 08, 2006 at 15:04:09 (UTC)
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
Member: Larz
Larz Aug 08, 2006 at 15:11:57 (UTC)
Goto Top
also in dem Fall

shutdown -s

und fertig
Member: 0cool
0cool Aug 08, 2006 at 15:29:48 (UTC)
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.
Member: verkehrsberuhigt
verkehrsberuhigt Aug 08, 2006 at 16:28:05 (UTC)
Goto Top
*
Member: MonsterX
MonsterX Aug 08, 2006 at 17:09:16 (UTC)
Goto Top
Angeknüpft an das Skript-Snipplet von mir von vorhin einfach folgende Zeile dran hängen:

objShell.SendKeys "{ENTER}"
Member: 0cool
0cool Aug 08, 2006 at 17:20:17 (UTC)
Goto Top
@MonsterX: Danke Jetzt funktioniert alles so wie ich es will
Member: cor35vet
cor35vet Jan 02, 2009 at 14:49:23 (UTC)
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.
Member: bastla
bastla Jan 03, 2009 at 23:35:40 (UTC)
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
Member: cor35vet
cor35vet Jan 04, 2009 at 09:06:25 (UTC)
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
Member: bastla
bastla Jan 04, 2009 at 10:07:26 (UTC)
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
Member: cor35vet
cor35vet Jan 04, 2009 at 10:25:42 (UTC)
Goto Top
Danke hat funktioniert face-smile

Witzig das mir das nich eingefallen is?
Hab stundenlang rumprobiert

Gruss cor35vet