Jeg har brugt Remote Desktop Connection til at komme ind på en arbejdsstation. Men i dette miljø kan jeg ikke bruge strømindstillingerne i startmenuen. Jeg har brug for en alternativ måde at lukke ned eller genstarte på.
Hvordan styrer jeg min computers strømtilstand via kommandolinjen?
De mest almindelige måder at bruge shutdown
kommandoen på er:
shutdown -s
- Lukker ned.
shutdown -r
- Genstarter.
shutdown -l
- Logger af.
shutdown -h
- Går i dvale.
Note: Der er en almindelig faldgrube, hvor brugere tror, at -h
betyder "hjælp" (hvilket det gør for alle andre kommandolinjeprogrammer... undtagen shutdown.exe
, hvor det betyder "hibernate"). De kører derefter shutdown -h
og slukker ved et uheld deres computere. Pas på med det.
shutdown -i
- "Interaktiv tilstand". I stedet for at udføre en handling, vises en GUI-dialog.
shutdown -a
- Afbryder en tidligere nedlukningskommando.
Ovenstående kommandoer kan kombineres med disse ekstra muligheder:
-f
- Tvinger programmer til at afslutte. Forhindrer, at nedlukningsprocessen går i stå.
-t <seconds>
- Indstiller tiden indtil nedlukning. Brug -t 0
for at lukke ned med det samme.
-c <message>
- Tilføjer en lukningsmeddelelse. Meddelelsen vil ende i hændelsesloggen.
-y
- Tvinger et "yes" svar på alle forespørgsler om nedlukning.
Bemærkning: Denne indstilling er ikke dokumenteret i nogen officiel dokumentation. Den blev opdaget af disse StackOverflow-brugere.
Jeg vil gerne sikre mig, at nogle andre rigtig gode svar også nævnes sammen med dette svar. Her er de i ingen bestemt rækkefølge.
-f
option fra JosephStyonsrundll32
fra VonCHvis du er på en fjernmaskine, kan du også tilføje indstillingen -f for at fremtvinge genstart. Ellers kan din session lukke, og en stædig app kan hænge systemet op.
Jeg bruger dette, når jeg ønsker at fremtvinge en øjeblikkelig genstart:
shutdown -t 0 -r -f
For en mere venlig "giv dem lidt tid" mulighed, kan du bruge dette:
shutdown -t 30 -r
Som du kan se i kommentarerne, er -f underforstået af timeout'en.
Brutus 2006 er et værktøj, der giver en GUI til disse indstillinger.
Oprindeligt svar: okt. 2008
Du har også fået alle " serier:rundll32.exe shell32.dll
"
(se opdatering nedenfor)
rundll32.exe user.exe,**ExitWindows**
[Hurtig nedlukning af Windows]
rundll32.exe user.exe,**ExitWindowsExec**
[Genstart af Windows]
rundll32.exe shell32.dll,SHExitWindowsEx n
hvor n
står for:
LOGOFF
.SHUTDOWN
.REBOOT
.FORCE
.POWEROFF
.(kan kombineres -> 6 = 2+4 FORCE REBOOT
)
(1) gør venligt opmærksom på i kommentarerne:
Don't use
rundll32.exe
for this purpose. Den forventer, at den funktion, du har givet på kommandolinjen, har en meget specifik metodesignatur - den passer ikke til metodesignaturen forExitWindows
.
Raymond CHEN skrev:
Den funktionssignatur, der kræves for funktioner, der kaldes af
rundll32.exe
, er:
void CALLBACK ExitWindowsEx(HWND hwnd, HINSTANCE hinst,
LPSTR pszCmdLine, int nCmdShow);
Det har ikke forhindret folk i at bruge
rundll32
til at kalde tilfældige funktioner, der ikke er designet til at blive kaldt afrundll32
, som f.eks.user32 LockWorkStation
elleruser32 ExitWindowsEx
.
(ups)
Den egentlige funktionssignatur for ExitWindowsEx er:
BOOL WINAPI ExitWindowsEx(UINT uFlags, DWORD dwReserved);
Og for at gøre det krystalklart:
Rundll32
er et levn fra Windows 95, og det er blevet forældet siden i hvert fald Windows Vista, fordi det overtræder en masse moderne tekniske retningslinjer.