Naudojau Nuotolinio darbalaukio ryšį, kad patektų į darbo vietą. Tačiau šioje aplinkoje negaliu naudoti "Start" meniu esančių maitinimo parinkčių. Man reikia alternatyvaus būdo išjungti arba paleisti iš naujo.
Kaip valdyti kompiuterio'maitinimo būseną per komandinę eilutę?
Dažniausiai pasitaikantys būdai naudoti shutdown
komandą yra šie:
shutdown -s
- išjungia.
shutdown -r
- Paleidžia iš naujo.
shutdown -l
- Atsijungia.
shutdown -h
- Užmigdo.
Pastaba: Dažnai pasitaiko spąstų, kai vartotojai galvoja, kad h
reiškia "help" (taip yra visose kitose komandinės eilutės programose... išskyrus shutdown.exe
, kur jis reiškia "hibernate"). Tada jie paleidžia shutdown -h
ir netyčia išjungia savo kompiuterius. Saugokitės to.
shutdown -i
- "Interaktyvus režimas". Užuot atlikus veiksmą, rodomas grafinės sąsajos dialogo langas.
shutdown -a
- nutraukia ankstesnę išjungimo komandą.
Pirmiau pateiktas komandas galima derinti su šiomis papildomomis parinktimis:
-f
- priverčia programas išeiti. Neleidžia užstrigti išjungimo procesui.
-t <seconds>
- Nustato laiką iki išjungimo. Naudokite -t 0
, jei norite išsijungti iš karto.
-c <message>
- Prideda išjungimo pranešimą. Pranešimas pateks į įvykių žurnalą.
-y
- Priverčia į visas išjungimo užklausas atsakyti "taip".
Pastaba: Ši parinktis nėra aprašyta oficialiuose dokumentuose. Ją atrado šie "StackOverflow" naudotojai.
Noriu užtikrinti, kad kartu su šiuo atsakymu būtų paminėti ir kiti tikrai geri atsakymai. Čia jie pateikiami be ypatingos tvarkos.
Jei esate nutolusiame kompiuteryje, taip pat galite pridėti parinktį -f, kad būtų galima priversti perkrauti kompiuterį. Priešingu atveju jūsų sesija gali užsidaryti ir užsispyrusi programa gali sustabdyti sistemą.
Naudoju šią parinktį, kai noriu priverstinai nedelsiant perkrauti kompiuterį:
shutdown -t 0 -r -f
Jei norite pasirinkti draugiškesnį "duoti jiems šiek tiek laiko" variantą, galite naudoti šį:
shutdown -t 30 -r
Kaip matote komentaruose, -f yra numanomas per laiko tarpą.
Brutus 2006 yra programa, kuri suteikia šių parinkčių grafinę sąsają.
Originalus atsakymas: 2008 m. spalio mėn.
Jūs taip pat turite visas " serijas:rundll32.exe shell32.dll
"
(žr. atnaujinimą toliau)
rundll32.exe user.exe,**ExitWindows**
[greitas "Windows" išjungimas]
rundll32.exe user.exe,**ExitWindowsExec**
[Restart Windows]
rundll32.exe shell32.dll,SHExitWindowsEx n
kur n
reiškia:
LOGOFF
IŠJUNGIMAS
REBOOT
(PAKARTOTINIS PALEIDIMAS)ĮJUNGTI
POWEROFF
(IŠJUNGTI)(galima derinti -> 6 = 2+4 PRISIJUNGTI IŠJUNGTI
)
1800 INFORMACIJA maloniai atkreipia dėmesį komentaruose:
Šiuo tikslu nenaudokite rundll32.exe
. Ji tikisi, kad komandinėje eilutėje perduota funkcija turi labai specifinį metodo parašą - jis neatitinka ExitWindows
metodo parašo.
Raymond CHEN rašė: Raymond CHEN rašė:
Funkcijos parašas, reikalingas funkcijoms, kurias iškviečia rundll32.exe
, yra:
void CALLBACK ExitWindowsEx(HWND hwnd, HINSTANCE hinst,
LPSTR pszCmdLine, int nCmdShow);
Tai nesustabdė žmonių nuo
rundll32
naudojimo atsitiktinėms funkcijoms, kurios nebuvo skirtosrundll32
iškviesti, pavyzdžiui,user32 LockWorkStation
arbauser32 ExitWindowsEx
.
(oops)
Tikroji funkcijos ExitWindowsEx signatūra yra tokia:
BOOL WINAPI ExitWindowsEx(UINT uFlags, DWORD dwReserved);
Ir kad būtų visiškai aišku:
Rundll32" yra "Windows 95" liekana, kurios atsisakyta bent jau nuo "Windows Vista", nes ji pažeidžia daugybę šiuolaikinių inžinerinių rekomendacijų.