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


von Z.B. Max Z. (koooala)


Angehängte Dateien:

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

von Jens M. (schuchkleisser)


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

von Oliver S. (oliverso)


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

von Dirk B. (dirkb2)


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.

von Oliver S. (oliverso)


Lesenswert?

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

Oliver

von Finanzmagnet (Gast)


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.

von Z.B. Max Z. (koooala)


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

von georg (Gast)


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

von Rufus Τ. F. (rufus) Benutzerseite


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 User
von Z.B. Max Z. (koooala)


Lesenswert?

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

von Rufus Τ. F. (rufus) Benutzerseite


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)?

von guest (Gast)


Lesenswert?

Rufus Τ. F. schrieb:
> "set path"

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

von georg (Gast)


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

von Dirk B. (dirkb2)


Lesenswert?

georg schrieb:
> (spezielle Programmpfade weggelassen)

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

von guest (Gast)


Lesenswert?

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

Im Prinzip gilt:
1
The theoretical maximum length of an environment variable is around 32,760 characters. However, you are unlikely to attain that theoretical maximum in practice.
2
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.

von Jens M. (schuchkleisser)


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
von Rufus Τ. F. (rufus) Benutzerseite


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
1
CommonProgramFiles=C:\Program Files\Common Files
2
PROCESSOR_ARCHITECTURE=AMD64
3
ProgramFiles=C:\Program Files

x86
1
CommonProgramFiles=C:\Program Files (x86)\Common Files
2
PROCESSOR_ARCHITECTURE=x86
3
PROCESSOR_ARCHITEW6432=AMD64
4
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.

von Bernd K. (prof7bit)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.