Używam Remote Desktop Connection, aby dostać się do stacji roboczej. Ale w tym środowisku nie mogę używać opcji zasilania w menu Start. Potrzebuję alternatywnego sposobu na wyłączenie lub ponowne uruchomienie.
Jak mogę kontrolować stan zasilania mojego komputera'poprzez wiersz poleceń?
Najczęstszymi sposobami użycia komendy shutdown
są:
shutdown -s
- Wyłącza.
shutdown -r
- Restartuje.
shutdown -l
- wylogowuje.
shutdown -h
- Hibernuje.
Uwaga: Istnieje powszechna pułapka, gdzie użytkownicy myślą, że -h
oznacza "help" (tak jest dla każdego innego programu z linii poleceń... z wyjątkiem shutdown.exe
, gdzie oznacza "hibernację"). Następnie uruchamiają shutdown -h
i przypadkowo wyłączają swoje komputery. Uważaj na to.
shutdown -i
- "Tryb interaktywny". Zamiast wykonywania akcji, wyświetla okno dialogowe GUI.
shutdown -a
- Przerywa poprzednią komendę zamykającą.
Powyższe komendy mogą być łączone z dodatkowymi opcjami:
-f
- Zmusza programy do zakończenia pracy. Zapobiega utknięciu procesu zamykania.
-t <seconds>
- Ustawia czas do zamknięcia. Użyj -t 0
aby zamknąć natychmiast.
-c <message>
- Dodaje wiadomość o zamknięciu. Wiadomość trafi do dziennika zdarzeń.
-y
- Wymusza odpowiedź "yes" na wszystkie zapytania o wyłączenie.
Uwaga: Ta opcja nie jest udokumentowana w żadnej oficjalnej dokumentacji. Została odkryta przez tych użytkowników StackOverflow.
Chcę się upewnić, że niektóre inne naprawdę dobre odpowiedzi są również wymienione wraz z tą. Oto one w żadnej konkretnej kolejności.
-f
]3 od JosephStyonsrundll32
od VonCJeśli jesteś na zdalnej maszynie, możesz również dodać opcję -f, aby wymusić restart. W przeciwnym razie twoja sesja może zostać zamknięta, a uparta aplikacja może zawiesić system.
Używam tego zawsze, gdy chcę wymusić natychmiastowy restart:
shutdown -t 0 -r -f
Aby uzyskać bardziej przyjazną "dać im trochę czasu" opcję, możesz użyć tego:
shutdown -t 30 -r
Jak widać w komentarzach, -f jest implikowane przez timeout.
Brutus 2006 jest narzędziem, które dostarcza GUI dla tych opcji.
Odpowiedź oryginalna: Październik 2008
Masz też wszystkie " serie:rundll32.exe shell32.dll
"
(patrz aktualizacja poniżej)
rundll32.exe user.exe,**ExitWindows**
[Szybkie zamykanie systemu Windows]
rundll32.exe user.exe,**ExitWindowsExec**
[Restart Windows]
rundll32.exe shell32.dll,SHExitWindowsEx n
gdzie n
oznacza:
LOGOFF
SHUTDOWN
REBOOT
FORCE
POWEROFF
(można łączyć -> 6 = 2+4 FORCE REBOOT
)
1800 INFORMACJE uprzejmie zwraca uwagę w komentarzach:
Nie'używaj
rundll32.exe
do tego celu. Oczekuje on, że funkcja, którą przekazałeś w wierszu poleceń, ma bardzo specyficzny podpis metody - nie pasuje on do podpisu metodyExitWindows
.
Raymond CHEN napisał:
Podpis funkcji wymagany dla funkcji wywoływanych przez
rundll32.exe
jest:
void CALLBACK ExitWindowsEx(HWND hwnd, HINSTANCE hinst,
LPSTR pszCmdLine, int nCmdShow);
To nie powstrzymało ludzi przed używaniem
rundll32
do wywoływania losowych funkcji, które nie zostały zaprojektowane do wywoływania przezrundll32
, takich jakuser32 LockWorkStation
lubuser32 ExitWindowsEx
.
(oops)
Rzeczywisty podpis funkcji dla ExitWindowsEx to:
BOOL WINAPI ExitWindowsEx(UINT uFlags, DWORD dwReserved);
I żeby było krystalicznie czysto:
Rundll32
jest pozostałością po Windows 95, i został zdeprecjonowany od co najmniej Windows Vista, ponieważ narusza wiele nowoczesnych wytycznych inżynieryjnych.