Ik'heb Remote Desktop Connection gebruikt om in een werkstation te komen. Maar in deze omgeving kan ik de aan/uit-opties in Start Menu niet gebruiken. Ik heb een alternatieve manier nodig om af te sluiten of opnieuw op te starten.
Hoe kan ik de energietoestand van mijn computer regelen via de opdrachtregel?
De meest voorkomende manieren om het shutdown
commando te gebruiken zijn:
shutdown -s
- Sluit af.
shutdown -r
- Opnieuw opstarten.
shutdown -l
- Logt uit.
shutdown -h
- Slaapstand.
Note: Er is een veel voorkomende valkuil waarbij gebruikers denken dat -h
"help" betekent (wat het ook doet voor elk ander command-line programma... behalve shutdown.exe
, waar het "winterslaap" betekent). Ze voeren dan shutdown -h
uit en zetten per ongeluk hun computer uit. Kijk daar voor uit.
shutdown -i
- "Interactieve modus". In plaats van een actie uit te voeren, wordt er een GUI dialoog getoond.
shutdown -a
- Breekt een vorige shutdown opdracht af.
De bovenstaande commando's kunnen gecombineerd worden met deze extra opties:
-f
- Forceert programma's om af te sluiten. Voorkomt dat het afsluitproces vastloopt.
-t <seconds>
- Stelt de tijd in tot het afsluiten. Gebruik -t 0
om onmiddellijk af te sluiten.
-c <message>
- Voegt een shutdown bericht toe. Het bericht komt terecht in het Event Log.
-y
- Forceert een "yes" antwoord op alle shutdown vragen.
Note: Deze optie is niet gedocumenteerd in de officiële documentatie. Ze werd ontdekt door deze StackOverflow gebruikers.
Ik wil ervoor zorgen dat enkele andere echt goede antwoorden ook worden vermeld samen met deze. Hier zijn ze in willekeurige volgorde.
-f
optie]3 van JosephStyonsrundll32
van VonCAls u op een machine op afstand werkt, wilt u misschien ook de -f optie toevoegen om het opnieuw opstarten te forceren. Anders kan uw sessie sluiten en een hardnekkige app kan het systeem laten hangen.
Ik gebruik dit wanneer ik een onmiddellijke reboot wil forceren:
shutdown -t 0 -r -f
Voor een meer vriendelijke "geef ze wat tijd" optie, kun je dit gebruiken:
shutdown -t 30 -r
Zoals je in het commentaar kunt zien, wordt de -f geïmpliceerd door de timeout.
Brutus 2006 is een hulpprogramma dat een GUI biedt voor deze opties.
Oorspronkelijk antwoord: Okt. 2008
Je hebt ook al de " serie:rundll32.exe shell32.dll
"
(zie update hieronder)
rundll32.exe user.exe,**ExitWindows**
[Snelle afsluiting van Windows].
rundll32.exe user.exe,**ExitWindowsExec**
[Windows opnieuw opstarten]
rundll32.exe shell32.dll,**ExitWindowsEx n
waarbij n
staat voor:
LOGOFF
SHUTDOWN
REBOOT
FORCE
POWEROFF
(kan gecombineerd worden -> 6 = 2+4 FORCE REBOOT
)
1800 INFORMATIE wijst in de comments vriendelijk op het volgende:
Gebruik
rundll32.exe
niet voor dit doel. Het verwacht dat de functie die je doorgaf op de opdrachtregel een zeer specifieke methodesignatuur heeft - het komt niet'overeen met de methodesignatuur vanExitWindows
.
Raymond CHEN schreef:
De functiehandtekening die nodig is voor functies die worden aangeroepen door
rundll32.exe
is:
void CALLBACK ExitWindowsEx(HWND hwnd, HINSTANCE hinst,
LPSTR pszCmdLine, int nCmdShow);
Dat heeft mensen er niet van weerhouden om
rundll32
te gebruiken om willekeurige functies aan te roepen die niet zijn ontworpen om doorrundll32
te worden aangeroepen, zoalsuser32 LockWorkStation
ofuser32 ExitWindowsEx
.
(oeps)
De eigenlijke functie handtekening voor ExitWindowsEx is:
BOOL WINAPI ExitWindowsEx(UINT uFlags, DWORD dwReserved);
En om het glashelder te maken:
Rundll32
is een overblijfsel uit Windows 95, en het is sinds minstens Windows Vista deprecated omdat het in strijd is met een heleboel moderne technische richtlijnen.