mikrocontroller.net

Forum: PC-Programmierung cmd-Befehl shutdown wird nicht ausgeführt


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Z.B. Max Z. (koooala)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

seit kurzem funktioniert der Befehl:

shutdown -s -t 7200

in meiner Kommandozeile unter Win10 Pro nicht mehr.

Auch nur:

shutdown

wird nicht als Befehl erkannt/kann nicht gefunden werden.

Im Anhang ist ein Bild auf den die Fehlermeldung nochmal genauer 
betrachtet werden kann.

Wenn ihr wisst wie diese Fehlermeldung zustande kommt und wie man sie 
entfernt, schreibt mir bitte.
Alternativen zum zeitgesteuerten Abschalten des PCs bitte auch gerne.

Vielen Dank

Autor: Jens M. (schuchkleisser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau mal, ob die Datei überhaupt noch da ist, und falls ja, schreibe 
den Pfad davor.
Bei mir isser unter C:\Windows\System32, bzw. %systemroot%\System32

Autor: Oliver S. (oliverso)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn es nicht mehr gefunden wird, ist es halt verschwunden, warum auch 
immer. Nachinstallieren, oder von einem anderen Rechner kopieren.

Anderere Shutdown-tools findet google. Das Original schaltet manche 
Rechner nicht aus, da sind andere tools zuverlässiger.

Oliver

Autor: Dirk B. (dirkb2)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oliver S. schrieb:
> Wenn es nicht mehr gefunden wird, ist es halt verschwunden,

Oder der Pfad dorthin ist nicht mehr in der PATH-Variablen.

Autor: Oliver S. (oliverso)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie oeben schon gesaht wurde, liegt das in C:\Windows\System32. Wenn der 
Pfad fehlt, sollte einiges andere auch nicht mehr funktionieren.

Oliver

Autor: Finanzmagnet (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Dirk B. schrieb:
> Oliver S. schrieb:
>> Wenn es nicht mehr gefunden wird, ist es halt verschwunden,
>
> Oder der Pfad dorthin ist nicht mehr in der PATH-Variablen.

Vielleicht ist der Pfad dorthin nur zugewuchert. Das passiert, wenn er 
nicht oft genutzt wird.

Autor: Z.B. Max Z. (koooala)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok,

muss die Kommandozeile einfach per Administrator starten, dann 
funktioniert es wieder :D

Kann mir jemand erklären warum das so ist?

mfG
Koala

Autor: georg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Z.B. Max Z. schrieb:
> muss die Kommandozeile einfach per Administrator starten, dann
> funktioniert es wieder

Es ist keineswegs selbstverständlich, dass jeder einen Computer 
herunterfahren kann, unter Unix ist das schon immer normal dass man dazu 
auch das Recht braucht.

Die Frage ist wie es dazu gekommen ist, dazu gibt es viele 
Möglichkeiten. Z.B. könntest du versehentlich bei den Eigenschaften der 
shutdown.exe "Als Administrator ausführen" angeklickt haben. 
Gruppenrichtlinien kämen auch in Frage, aber das ist ein weites Feld.

Georg

Autor: Rufus Τ. F. (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
georg schrieb:
> Es ist keineswegs selbstverständlich, dass jeder einen Computer
> herunterfahren kann, unter Unix ist das schon immer normal dass man dazu
> auch das Recht braucht.

Das ist aber nicht die Erklärung des Phänomens. shutdown.exe darf auch 
ein User ohne irgendwelche Rechte aufrufen, aber es gibt dann halt 
entsprechende Fehlermeldungen. Daß die Datei "nicht gefunden" wird, hat 
eine andere Ursache.

Das ist höchstwahrscheinlich ein vergurkter Pfad (in der Konsole einfach 
"set path" eingeben und das Ergebnis angucken).

Auf 64-Bit-Systemen gibt es zwei Instanzen von shutdown.exe, die 
64-Bit-Version im Verzeichnis %systemroot%\system32 und die 
32-Bit-Version im Verzeichnis %systemroot%\syswow64.

Im Pfad (%path%) steht syswow64 nicht drin, je nachdem, ob der den Pfad 
auswertende Prozess ein 32- oder 64-Bit-Prozess ist, wird "system32" 
transparent durch "syswow64" ersetzt.

D.h. ein 32-Bit-Prozess ruft mit "shutdown.exe" die in 
%systemroot%\syswow64 gespeicherte Variante auf, ein 64-Bit-Prozess ruft 
hingegen die in %systemroot%\system32 gespeicherte Variante auf.

: Bearbeitet durch Moderator
Autor: Z.B. Max Z. (koooala)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was soll ich also machen, damit ich den Befehl shutdown auch ohne Aufruf 
der Kommandozeile als Administrator ausführen kann?

Autor: Rufus Τ. F. (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Herausfinden, was kaputt ist.

a) Sind beide Varianten von shutdown.exe vorhanden?

b) Was ergibt "set path" in den beiden unterschiedlichen Fällen 
(normaler Konsolenaufruf / Administrator-Konsolenaufruf)?

Autor: guest (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rufus Τ. F. schrieb:
> "set path"

Das 'set' kann man in dem Fall weglassen, Windows kennt auch direkt das 
Kommando "path".

Autor: georg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rufus Τ. F. schrieb:
> Was ergibt "set path" in den beiden unterschiedlichen Fällen
> (normaler Konsolenaufruf / Administrator-Konsolenaufruf)?

Bei mir in beiden Fällen das gleiche:
C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\Syste 
m32\WindowsPowerShell\v1.0\

(spezielle Programmpfade weggelassen)

Beim TO müsste da ein Unterschied sein.

Georg

Autor: Dirk B. (dirkb2)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
georg schrieb:
> (spezielle Programmpfade weggelassen)

Gibt es ein Größenlimit für die Variable?

Autor: guest (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dirk B. schrieb:
> Gibt es ein Größenlimit für die Variable?

Im Prinzip gilt:
The theoretical maximum length of an environment variable is around 32,760 characters. However, you are unlikely to attain that theoretical maximum in practice.
All environment variables must live together in a single environment block, which itself has a limit of 32767 characters.
Es gibt bei PATH aber moch ein paar weitere Limits bei etwa 8k, 4k, 2k 
und  früher auch 1k, je nachdem wie und wo die Variable benutzt wird.

Autor: Jens M. (schuchkleisser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dirk B. schrieb:
> Gibt es ein Größenlimit für die Variable?

Vermutlich hat er das gemacht, weil es "uns" nichts angeht was er sonst 
so installiert hat.

Mein Path sieht im übrigen genau so aus.
Es gibt ein Windows-Programm, das findet man in dem man "umgebungsv" in 
die Suche tippelt, dann sollte "Umgebungsvariablen für dieses Konto 
bearbeiten" erscheinen.
Dort kann man den Path für die Windows-Seite sehen und ändern, sowohl 
für den Benutzer als auch für das System.

: Bearbeitet durch User
Autor: Rufus Τ. F. (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jens M. schrieb:
> Dort kann man den Path für die Windows-Seite sehen

Das ist zwar schön, aber interessanter ist hier eher der Pfad, der in 
den beiden unterschiedlichen Konsolensitzungen aktiv ist.

Und den kann man sich mit "set path" bzw. "path" in der Konsole anzeigen 
lassen.

Das Environment unterscheidet sich zwischen 32- und 64-Bit-Prozessen.

Das kann man leicht herausfinden, indem man in einer frisch gestarteten 
Konsole mal mit "set" alle Umgebungsvariablen auflisten lässt und dann 
explizit eine 32-Bit-Konsole startet und in der wieder alle 
Umgebungsvariablen auflisten lässt.

Das explizite Starten einer 32-Bit-Konsole geht mit dem Aufruf von 
%systemroot%\syswow64\cmd.exe

Unterschiedliche Zeilen (auf meinem System)

x64
CommonProgramFiles=C:\Program Files\Common Files
PROCESSOR_ARCHITECTURE=AMD64
ProgramFiles=C:\Program Files

x86
CommonProgramFiles=C:\Program Files (x86)\Common Files
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_ARCHITEW6432=AMD64
ProgramFiles=C:\Program Files (x86)

Man kann also z.B. mit

"set PROCESSOR_ARCHITEW6432"

herausfinden, ob eine 32-Bit-Konsole aktiv ist. In einer 64-Bit-Konsole 
gibt es die Fehlermeldung, daß die Umgebungsvariable nicht definiert 
ist.

Autor: Bernd K. (prof7bit)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Finanzmagnet schrieb:
> Dirk B. schrieb:
>> Oliver S. schrieb:
>>> Wenn es nicht mehr gefunden wird, ist es halt verschwunden,
>>
>> Oder der Pfad dorthin ist nicht mehr in der PATH-Variablen.
>
> Vielleicht ist der Pfad dorthin nur zugewuchert. Das passiert, wenn er
> nicht oft genutzt wird.

+1

Beste Windows-spezifische Antwort seit Montag, 0 Uhr.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.