Guten Abend,
und zwar würde ich gerne den shutdown -t -s Befehl in AutoIT abrufen.
Ich habs über
Run(@ComSpec&"\c ")
probiert. Aber es funktioniert nicht.
Guten Abend,
und zwar würde ich gerne den shutdown -t -s Befehl in AutoIT abrufen.
Ich habs über
Run(@ComSpec&"\c ")
probiert. Aber es funktioniert nicht.
Hallo @L11ght
Warum nimmst Du nicht den nativen AutoIt Befehl 'Shutdown' ?
Auszug aus der Hilfe :
Befehl : Shutdown - fährt das System herunter.
Shutdown ( code [, reason] )
Parameter
code - Eine Kombination von Herunterfahr-Codes. Siehe Anmerkungen.
reason - [optional] Shutdown-Code des Users.
Rückgabewert
Erfolg : Gibt 1 zurück.
Fehler : Gibt 0 zurück und @error wird auf GetLastError() gesetzt.
Bemerkungen
Der Herunterfahr-Code ist eine Kombination der folgenden Werte:
0 = Abmelden / Logoff
1 = Herunterfahren / Shutdown
2 = Neu Starten / Reboot
4 = Herunterfahren erzwingen / Force
8 = Strom abschalten / Power down
16= Erzwingen, falls das System hängt
32= Bereitschaftsmodus / Standby
64= Schlafmodus / Hibernate
Falls Du alternativ den Windows-Befehl verwenden möchtest (Beispiel 60 Sekunden), dann :
Run("c:\windows\system32\shutdown.exe /s /t 60", "", @SW_HIDE)
oder :
Run(@ComSpec & " /c shutdown /s /t 60", "", @SW_HIDE)
Bei Windows 7 werden Parameter mit / eingeleitet (ansonsten mit - probieren).
Gruß Musashi
Hallo,
erstmal danke für die schnelle Rückmeldung.
Eigentlich wollte ich über die Inputbox eine Variable definieren wann der PC runtergefahren wird. (Sprich erst nach 2h oder so)
Dann führt das Script einfach die CMD aus mit shutdown -t -s $variable und schließt sich danach wieder.
würde ich über AUTOIT machen müsste ich praktisch nur Sleep($variable) machen, was aber zur Folge hätte, das das Script immer im Hintergrund läuft. Das stört mich
Hallo @L11ght !
Ich hatte meine Antwort im obigen Beitrag bereits ergänzt, aber das hast Du ggf. übersehen. Daher wiederhole ich es hier noch mal :
Falls Du alternativ den Windows-Befehl verwenden möchtest (Beispiel 60 Sekunden), dann :
Run("c:\windows\system32\shutdown.exe /s /t 60", "", @SW_HIDE)
oder :
Run(@ComSpec & " /c shutdown /s /t 60", "", @SW_HIDE)
Bei Windows 7 werden Parameter mit / eingeleitet (ansonsten mit - probieren).
Gruß Musashi
Bin gerade unterwegs und kanns nicht testen, aber eigentlich sollte das so dann funktionieren oder
Run(@ComSpec & " /c shutdown /s /t" & $variable, "", @SW_HIDE)
Bin gerade unterwegs und kanns nicht testen, aber eigentlich sollte das so dann funktionieren oder
Run(@ComSpec & " /c shutdown /s /t" & $variable, "", @SW_HIDE)
Hallo @L11ght !
Fast .
Hinter dem /t" muss, meiner Meinung nach, noch ein Leerzeichen 'rein, also /t " . Die Syntax lautet /t 000 (000 für Sekunden), siehe : shutdown /? .
Edit :
Ich habe es gerade mal probiert -> das Leerzeichen zwischen /t und der Zeitangabe ist (zumindest bei Win7) Pflicht !
Falls alles funktioniert, dann bitte deinen Startbeitrag editieren und auf gelöst setzen (grüner Haken).
Gruß Musashi
$ShutdownTime = InputBox("","","")
RunWait(@ComSpec & ' /C ' & "shutdown -t " & $ShutdownTime,"", @SW_SHOW) ;/K
soinetwa.
Da gibt's mehrere Optionen:
1. So geht's...
Run(@WindowsDir & "\SysWOW64\shutdown.exe /s /t " & $iSeconds, "", @SW_HIDE); x64
Run(@WindowsDir & "\System32\shutdown.exe /s /t " & $iSeconds, "", @SW_HIDE); x86
Run(@SystemDir & "\shutdown.exe /s /t " &$iSeconds, "", @SW_HIDE); automatisch
2. oder so
$oShell = ObjCreate("WScript.Shell")
If IsObj($oShell) Then $oShell.Run($oShell.ExpandEnvironmentStrings("%WINDIR%") & "\SysWOW64\shutdown.exe /s /t " & $iSeconds); x64
If IsObj($oShell) Then $oShell.Run($oShell.ExpandEnvironmentStrings("%WINDIR%") & "\System32\shutdown.exe /s /t " & $iSeconds); x86
If IsObj($oShell) Then $oShell.Run(@SystemDir & "\shutdown.exe /s /t " & $iSeconds); automatisch
3. so auch
ShellExecute(@WindowsDir & "\SysWOW64\shutdown.exe", "/s /t " & $iSeconds, "", "", @SW_HIDE); x64
ShellExecute(@WindowsDir & "\System32\shutdown.exe", "/s /t " & $iSeconds, "", "", @SW_HIDE); x86
ShellExecute(@SystemDir & "\shutdown.exe", "/s /t " & $iSeconds, "", "", @SW_HIDE); automatisch
4. und letztendlich die Konsolenoptionen:
Run(@ComSpec & " /c shutdown -s -t " & $iSeconds, "", @SW_HIDE); comspec
Run(@WindowsDir & "\SysWOW64\cmd.exe /c shutdown -s -t " & $iSeconds, "", @SW_HIDE); x64
ShellExecute(@WindowsDir & "\SysWOW64\cmd.exe", "/c shutdown -s -t " & $iSeconds, "", "", @SW_HIDE); x64
Run(@WindowsDir & "\System32\cmd.exe /c shutdown -s -t " & $iSeconds, "", @SW_HIDE); x86
ShellExecute(@WindowsDir & "\System32\cmd.exe", "/c shutdown -s -t " & $iSeconds, "", "", @SW_HIDE); x86
Run(@SystemDir & "\cmd.exe /c shutdown -s -t " & $iSeconds, "", @SW_HIDE); automatisch
ShellExecute(@SystemDir & "\cmd.exe", "/c shutdown -s -t " & $iSeconds, "", "", @SW_HIDE); automatisch
Lg NO1
Alle drei verwenden die Shell zum Starten und sind praktisch identisch. Also warum überhaupt so viel ausprobieren?
Run(@SystemDir & "\shutdown.exe /s /t " &$iSeconds, "", @SW_HIDE) Reicht vollkommen aus.
Falls du mich meinst: Hast natürlich Recht. Ich wollte lediglich mal die "Möglichkeiten" aufzeigen.
Vielen Dank für die vielen Antworten. Bin aktuell dabei es zu lernen, da ich nach der Ausbildung eventuell eine Stelle kriege, wo es mir ziemlich nützlich sein wird.
Kann closed werden.
Hallo,
ob es mir nun jemand glaubt oder auch nicht. Ich habe beim Notebook eines Freundes (Medion mit Win10 x64) und bei mir selbst, beim scriptgesteuerten Herunterfahren mit Autoit ein (für mich) zermürbendes Problem.
Bei allen hier genannten Varianten (z. B. mit Run(@SystemDir & "\shutdown.exe /s ", "", @SW_HIDE)oder mit Shutdown (5) 5=$SD_SHUTDOWN (1) = Shutdown & $SD_FORCE (4) = Force) kann ich den PC zwar herunterfahren aber er schaltet nicht aus. Es bleibt ein Schwarzer Bildschirm übrig aber die Betriebsleuchte bleibt an. Lüfter läuft. Schaltet nicht ab.
Jetzt das fatale. Ab und an (so jedes 4rte oder 7te Mal, schaltet der PC ab. Alles aus. Aber nicht immer.
Kann mir bitte jemand ein Tip geben, wie ich es mit AutoIt schaffen kann, den PC herunterzufahren und abzuschalten?
Bitte antwortet jetzt aber nicht mit einem Tip wie: Mach das doch einfach über nen Batch. Weil: Da funktioniert es in der Tat mit dem herunterfahren & abschalten.
Der angemeldete Benutzer hat lokale Administratorrechte.
Frage: Kann das jemand von Euch bei seinem Win10 PC aus nachvollziehen?
Darf man hier verlinken auf andere Seite?
Ich Zitiere einfach...
ZitatAlles anzeigenHallo Zusammen,
ich habe Windows 10 vor zwei Tagen installiert. Seitdem funktioniert das Herunterfahren des PC nicht mehr.
Ablaufbeschreibung des Problems:
- Startbutton anklicken
- Ein/Aus anklicken
- Herunterfahren auswählen
- Es erscheint ein blauer Bildschirm mit dem Hinweis "Windows wird heruntergefahren"
- Nach kurzer Zeit wird dann wieder der normale Arbeits-Desktop angezeigt.
- Den PC kann ich nicht mehr herunterfahren. Abschalten funktioniert nur noch durch Betätigen des Netzschalters.Wer kann helfen?
Fehler behoben!!
Ich habe einen Tipp erhalten. Fehler tritt nicht mehr auf, wenn das Häkchen bei "Schnellstart aktivieren" entfernt wird.
Dazu folgende Schritte durchführen:
- "Einstellungen" aufrufen
- "Netzbetrieb und Energiesparen" auswählen
- "Zusätzliche Energieeinstellungen" anklicken
- "Kennwort bei Reaktivierung anfordern" auswählen
- "Einige Einstellungen sind momentan nicht verfügbar" anklicken
- Häkchen bei "Schnellstart aktivieren" entfernen.
- "Änderungen speichern"
Danach müsste der das Herunterfahren des PC funktionieren.
Vielleicht hilft dir das ja?
Danke für den Tip.
Dennoch ist meine Ausgangslage eine andere (PC fährt herunter aber schaltet nicht aus) und auch nach dem deaktivieren des Schnellstarts tritt keine Besserung auf. Blöd ist halt, dass es mal klappt und mal nicht und ich kann nicht feststellen, an was es liegen könnte. Seltsam das ganze. Über die Eingabeaufforderung klappt alles bestens.
Ich dachte es liegt letzlich an der Ausführung als Admin. Aber selbst wenn ich (bin lokaler Admin) die Eingabeaufforderung ohne explizide Adminrechte starte, klappt das herunterfahren mit dem Kommando shutdown /s bestens.
Dennoch habe ich im Skript ein #RequireAdmin eingefügt. Allerdings ohne Erfolg.
Ich hatte ein ähnliches Problem an einem PC: Ursache war das Netzteil, das hat nicht abgeschaltet oder auch ungefragt einen Reboot inszeniert.
Ich hatte auch ein ähnliches Problem mit einem Medion-PC... als Ursache hat sich herausgestellt, dass das Netzteil zu schwach war und sich die Konensatoren (Elkos) zu langsam entladen haben, weil sie falsch dimensioniert waren.
Ab und dauerte ein Neustart bis zu 15 min... nach einem "Kaltstart" dann aber nur etwa 3 min!
Da es ein Läppi sit - erst mal Netzteil wechseln und testen was Bitnugger vorschlägt.
Was spricht dagegen einen Batch zu benutzen? Du willst der Sache auf den Grund gehen? -- > ok dann ist das keine Lösung.
Du willst pragmatisch ein Script zum laufen bringen? Ruf den Batch aus Autoit auf. Mag nicht besonders schön sein, aber wenn es funktioniert.
Es gibt einige kleine exes, die genau das machen. Schutdown.exe und Restart.exe probier mal aus ob die tun was sie sollen. Die könnte man im Zweifel auch einbinden.
Sorry - ich bin z.T. anders gestrickt. Ich schreibe Code nur um etwas zu erreichen. Da ist es mir manchmal egal mit welchen Hilfsmitteln --> Hauptsache es funktioniert.
Gruß
Peter
Netzteil kann eine Ursache sein aber auch eine noch nicht bearbeitet Anfrage.
Hast du mal in der Ereignissanzeige nachgeschaut was da schief läuft?
Unter "Start" mal --> Ereignisanzeige eingeben, als Admin starten wenn du da Einträge löschen möchtest.
Unter "Anwendungs- und Dienstprotokolle" --> Microsoft --> Windows --> Diagnostics-Performance --> Betriebsbereit
Dann mal nachschauen was da Probleme macht.
Edit: ID-Liste gelöscht, war die falsche
Wenn du da noch mehr eintauchen möchtest was das Protokolieren von Windows angeht dann schaue dir das mal an, ist zwar für Vista beschrieben geht aber auch für Win 10 nach kleineren Aufwand.
Der auf der Seite erwähnte "Xbootmgr" ist hier mit enthalten: Windows Assessment and Deployment Kit
Richtig gut beschrieben ist es hier:
Windows Performance Toolkit – Installation – Teil 1
Windows Performance Toolkit – Leistungsanalyse – Teil 2
Windows Performance Toolkit – Starten/Herunterfahren analysieren – Teil 3
Danke erstmal für Eure Hilfe.
Ich hatte ein ähnliches Problem an einem PC: Ursache war das Netzteil, das hat nicht abgeschaltet oder auch ungefragt einen Reboot inszeniert.
Ich hatte auch ein ähnliches Problem mit einem Medion-PC... als Ursache hat sich herausgestellt, dass das Netzteil zu schwach war und sich die Konensatoren (Elkos) zu langsam entladen haben, weil sie falsch dimensioniert waren.
Da es ein Läppi sit - erst mal Netzteil wechseln und testen was Bitnugger vorschlägt.
Netzteil kann eine Ursache sein aber auch eine noch nicht bearbeitet Anfrage.
Hast du mal in der Ereignissanzeige nachgeschaut was da schief läuft?
Jedoch kann ich es am Netzteil nicht festmachen, dass es am "schlussendlichen" Abschalten des PC, nach dem Herunterfahren schuld sein soll, wenn es doch mit Hilfe der Windows-Eingabeaufforderung und mit dem regulären Herunterfahren über das Windowsmenu funktioniert.
Hast du mal in der Ereignissanzeige nachgeschaut was da schief läuft?
Folgendes wurde beim Herunterfahren heute Nacht als Information (aber weder als Warnung noch als Fehler) protokolliert.
- <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
- <System>
<Provider Name="Microsoft-Windows-WLAN-AutoConfig" Guid="{9580D7DD-0379-4658-9870-D5BE7D52D6DE}" />
<EventID>4001</EventID>
<Version>0</Version>
<Level>4</Level>
<Task>0</Task>
<Opcode>2</Opcode>
<Keywords>0x4000000000000000</Keywords>
<TimeCreated SystemTime="2017-11-24T22:48:35.066368300Z" />
<EventRecordID>4398</EventRecordID>
<Correlation />
<Execution ProcessID="2960" ThreadID="7384" />
<Channel>System</Channel>
<Computer>DESKTOP-7LD455N</Computer>
<Security UserID="S-1-5-18" />
</System>
<EventData />
</Event>
Alles anzeigen
- <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
- <System>
<Provider Name="Microsoft-Windows-Kernel-Power" Guid="{331C3B3A-2005-44C2-AC5E-77220C37D6B4}" />
<EventID>109</EventID>
<Version>0</Version>
<Level>4</Level>
<Task>103</Task>
<Opcode>0</Opcode>
<Keywords>0x8000400000000404</Keywords>
<TimeCreated SystemTime="2017-11-24T22:48:38.604697700Z" />
<EventRecordID>4399</EventRecordID>
<Correlation />
<Execution ProcessID="800" ThreadID="804" />
<Channel>System</Channel>
<Computer>DESKTOP-7LD455N</Computer>
<Security />
</System>
- <EventData>
<Data Name="ShutdownActionType">4</Data>
<Data Name="ShutdownEventCode">0</Data>
<Data Name="ShutdownReason">5</Data>
</EventData>
</Event>
Alles anzeigen
- <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
- <System>
<Provider Name="Microsoft-Windows-Kernel-General" Guid="{A68CA8B7-004F-D7B6-A698-07E2DE0F1F5D}" />
<EventID>13</EventID>
<Version>0</Version>
<Level>4</Level>
<Task>2</Task>
<Opcode>0</Opcode>
<Keywords>0x8000000000000080</Keywords>
<TimeCreated SystemTime="2017-11-24T22:48:38.996820900Z" />
<EventRecordID>4400</EventRecordID>
<Correlation />
<Execution ProcessID="4" ThreadID="4724" />
<Channel>System</Channel>
<Computer>DESKTOP-7LD455N</Computer>
<Security />
</System>
- <EventData>
<Data Name="StopTime">2017-11-24T22:48:38.996820500Z</Data>
</EventData>
</Event>
Alles anzeigen
;Edit: Nachträglich hinzugefügt:
- <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
- <System>
<Provider Name="Microsoft-Windows-Diagnostics-Performance" Guid="{CFC18EC0-96B1-4EBA-961B-622CAEE05B0A}" />
<EventID>200</EventID>
<Version>1</Version>
<Level>3</Level>
<Task>4007</Task>
<Opcode>40</Opcode>
<Keywords>0x8000000000010000</Keywords>
<TimeCreated SystemTime="2017-10-21T19:36:32.993467300Z" />
<EventRecordID>6</EventRecordID>
<Correlation ActivityID="{A8DC444B-4AA3-0003-274E-DCA8A34AD301}" />
<Execution ProcessID="3592" ThreadID="4176" />
<Channel>Microsoft-Windows-Diagnostics-Performance/Operational</Channel>
<Computer>DESKTOP-7LD455N</Computer>
<Security UserID="S-1-5-19" />
</System>
- <EventData>
<Data Name="ShutdownTsVersion">1</Data>
<Data Name="ShutdownStartTime">2017-10-21T19:34:27.284824300Z</Data>
<Data Name="ShutdownEndTime">2017-10-21T19:34:42.964108900Z</Data>
<Data Name="ShutdownTime">15679</Data>
<Data Name="ShutdownUserSessionTime">11869</Data>
<Data Name="ShutdownUserPolicyTime">31</Data>
<Data Name="ShutdownUserProfilesTime">9</Data>
<Data Name="ShutdownSystemSessionsTime">2111</Data>
<Data Name="ShutdownPreShutdownNotificationsTime">164</Data>
<Data Name="ShutdownServicesTime">1876</Data>
<Data Name="ShutdownKernelTime">1698</Data>
<Data Name="ShutdownRootCauseStepImprovementBits">0</Data>
<Data Name="ShutdownRootCauseGradualImprovementBits">0</Data>
<Data Name="ShutdownRootCauseStepDegradationBits">2</Data>
<Data Name="ShutdownRootCauseGradualDegradationBits">2</Data>
<Data Name="ShutdownIsDegradation">true</Data>
<Data Name="ShutdownTimeChange">0</Data>
</EventData>
</Event>
Alles anzeigen
;Nachtrag Ende-
Kann jemand von Euch aus den Einträgen einen Hinweis auf das nicht erfolgte Abschalten erkennen?
oh-ha :
Vielen Dank für Deine weiterführenden Links. Die schaue ich mir jetzt alle nach und nach an.
Sorry - ich bin z.T. anders gestrickt. Ich schreibe Code nur um etwas zu erreichen. Da ist es mir manchmal egal mit welchen Hilfsmitteln --> Hauptsache es funktioniert.
Ja und nein Peter. Je nach dem, welche prio das Thema für mich hat, finde ich es sehr hilfreich den Grund eines Problemes zu kennen. Auch dann wenn es auf andere Weise lösbar ist. So sehe ich aufgrund meiner Nachfrage mehrere hilfreiche Antworten , die mich bei ähnlich gelagerten Problemen weiterbringen. Ferner finde ich es wichtig die Ursache eines Problems zu finden, wenn dazu noch dritte davon provitieren können.
Vielen Dank Euch allen!
Also bei EventID 200 ist nicht normal, dauert das herunterfahren zu lange, ok damit erzähle ich dir ja nichts neues aber mehr sehe/kenne ich da auf anhieb auch nicht.
Hier mal das was Microsoft dazu sag: Event ID 200 Windows Diagnostics