V systému Windows je k dispozici několik příkazů, které umožňují vypnout nebo restartovat místní nebo vzdálený počítač. V tomto článku se podíváme na to, jak používat vypnutí příkaz a rutiny PowerShell Restartujte počítač a Stop-počítač k vypnutí/restartování Windows.
- Použití příkazu Shutdown v systému Windows
- Jak vypnout nebo restartovat vzdálený počítač se systémem Windows?
- Restartujte nebo vypněte Windows pomocí PowerShellu
Použití příkazu Shutdown v systému Windows
Projekt shutdown.exe je vestavěný nástroj příkazového řádku systému Windows, který umožňuje restartovat, vypnout, přepnout počítač do režimu spánku, hibernace nebo ukončit uživatelskou relaci. V této příručce si ukážeme základní příklady použití příkazu k vypnutí v systému Windows. Všechny výše popsané příkazy se spouštějí v dialogovém okně Spustit — Win+R ->, v příkazovém řádku (cmd.exe) nebo v prostředí PowerShell.

Příkaz shutdown má následující syntaxi: shutdown [/i | /l | /s | /r | /g | /a | /p | /h | /e | /o] [/hybrid] [/soft] [/fw] [/f] [/m computer][/t xxx][/d [p|u:]xx:yy [/c «komentář»]]
Jak vidíte, příkaz má poměrně hodně možností a lze jej použít k vypnutí/restartování místního nebo vzdáleného počítače.
Jak vypnout okna z příkazového řádku?
Chcete-li vypnout systém Windows, použijte příkaz shutdown s /s klíč.
Restartujte Windows z CMD
Chcete-li restartovat počítač, použijte /r parametr. Po jeho spuštění se Windows ladně restartují.

Ukončete relaci uživatele
Chcete-li ukončit aktuální relaci uživatele (odhlášení), spusťte tento příkaz
Tento příkaz funguje stejně jako logoff.exe příkaz.
Jak hibernovat Windows pomocí příkazu vypnutí?
Chcete-li počítač hibernovat, spusťte tento příkaz:
V režimu hibernace se veškerý obsah paměti zapíše do souboru hiberfil.sys na místním disku a počítač přejde do režimu spánku se sníženou spotřebou energie.
Informujte přihlášené uživatele o blížícím se restartu nebo vypnutí
Všechny přihlášené uživatele Windows můžete upozornit na blížící se vypnutí/restartování počítače nebo serveru zasláním vyskakovací zprávy všem aktivním relacím. Tato funkce se zpravidla používá na serverech RDS, na kterých pracuje několik uživatelů současně ve svých vlastních relacích RDP.
shutdown /r /c “Tento server bude restartován za 60 sekund.”
Zpožděné vypnutí/restart počítače pomocí časovače
Počítač můžete vypnout nebo restartovat s určitým zpožděním (na časovači). Za použití /t můžete určit časové rozpětí, po kterém se počítač/server vypne nebo restartuje. Můžete tak svým uživatelům poskytnout nějaký čas na uložení otevřených souborů a správné zavření aplikací. Tuto možnost je vhodné použít společně s upozorněním. V tomto příkladu informujeme uživatele, že systém Windows bude ukončen za 10 minut (600 sekund).
shutdown /s /t 600 /c «Server se vypne za 10 minut. Uložte si práci!»
Uživatel bude upozorněn na plánované vypnutí:
Brzy budete odhlášeni

Tento příkaz je užitečný pro upozornění uživatelů s relacemi na hostitelích RDSH ve farmě Remote Desktop Services na Windows Server, když chcete restartovat server za účelem údržby. Lze jej použít ve spojení s režimem údržby RDS (vypouštění).
Pokud je zpoždění příliš dlouhé (například 60 minut/3,600 XNUMX sekund), zobrazí se v pravém dolním rohu obrazovky vyskakovací okno:
Brzy budete odhlášeni. Váš Windows se vypne za 100 minut.

Jak zastavit/zrušit/přerušit vypnutí systému ve Windows
Systém Windows po spuštění příkazu k vypnutí nebo restartu ve výchozím nastavení čeká 60 sekund, aniž by cokoliv provedl. Správce může restartování nebo vypnutí zařízení zrušit spuštěním tohoto příkazu během této doby:
Po zrušení vypnutí se v pravém dolním rohu obrazovky zobrazí následující vyskakovací zpráva:
Odhlášení je zrušeno. Plánovaná odstávka byla zrušena.
Okamžitě restartujte systém Windows
Chcete-li okamžitě vypnout nebo restartovat počítač bez čekání 60 sekund, zadejte jako hodnotu parametru /t. Například:
Projekt /f klíč je velmi důležitý. Používám jej téměř vždy při vypínání nebo restartování hostitelů Windows Server. Tento atribut umožňuje vynutit uzavření všech spuštěných programů a procesů bez čekání na potvrzení od uživatele (nebudeme čekat, až uživatelé potvrdí uzavření všech aplikací na serveru RDS, protože to nikdy nemůžeme získat).
Další příkaz restartuje počítač a po restartu automaticky spustí všechny registrované aplikace (zde jsou myšleny aplikace registrované v systému pomocí RegisterApplicationRestart API).
Vytvořte zástupce restartu na ploše systému Windows
Aby to bylo pro uživatele pohodlnější, můžete na ploše vytvořit zástupce pro restart nebo vypnutí počítače s požadovanými parametry. Taková zkratka může být užitečná, když potřebujete restartovat počítač z relace RDP, když v nabídce Start nejsou žádné možnosti restartování nebo vypnutí počítače.

Jak restartovat Windows v určitou dobu (podle plánu)?
Pokud chcete, aby se váš počítač nebo server restartoval/vypnul v určitou dobu, můžete do Plánovače úloh systému Windows ( taskchd.msc ) přidat příkaz shutdown s parametry.
Tato úloha Plánovače například restartuje počítač denně ve 12:XNUMX.

$Trigger= New-ScheduledTaskTrigger -V 00:00 -Denně
$User= “NT AUTHORITYSYSTEM”
$Action= New-ScheduledTaskAction -Spustit «shutdown.exe» -Argument «–f –r –t 120»
Register-ScheduledTask -TaskName «RebootEvertyNight_PS» -Trigger $Trigger -User $User -Action $Action -RunLevel Nejvyšší –Force
Jak vypnout nebo restartovat vzdálený počítač se systémem Windows?
K restartování vzdáleného počítače můžete použít příkaz shutdown.exe. Chcete-li to provést, vzdálený počítač musí být přístupný přes síť a účet, který používáte, musí být členem místní skupiny Administrators na vzdáleném počítači (serveru):
vypnutí /r /t 120 /m 192.168.1.210

Pokud jsou splněny všechny výše popsané podmínky, ale při spuštění příkazu k vypnutí se zobrazí chyba „Přístup odepřen (5)“, musíte povolit vzdálený přístup k administrativním sdíleným položkám (C$, ADMIN$) na vzdáleném počítači změnou hodnoty parametru LocalAccountTokenFilterPolicy na 1.
reg add “HKLMSOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystem” /v “LocalAccountTokenFilterPolicy” /t REG_DWORD /d 1 /f
Povolte příchozí pravidla WMI a SMB v bráně Windows Defender ve vzdáleném počítači, abyste umožnili vzdálený přístup pomocí příkazu shutdown.exe.
Get-NetFirewallrule -name WMI-RPCSS-In-TCP,WMI-WINMGMT-In-TCP,FPS-SMB-In-TCP| Enable-NetFirewallRule
Pokud potřebujete zadat přihlašovací údaje uživatele pro připojení ke vzdálenému počítači, můžete použít příkazy:
net use 192.168.13.111 /u:jméno korpusu
vypnutí /s /t 60 /f /m 192.168.13.111
Pokud potřebujete vzdáleně restartovat více počítačů, můžete uložit seznam počítačů do textového souboru a spustit vzdálený restart všech počítačů pomocí jednoduchého skriptu PowerShell:
$sh_msg = «Váš počítač bude automaticky restartován za 10 minut. Uložte soubory a ukončete spuštěné aplikace»
$sh_delay = 600 # sekund
$computers = gc C:PSPC-list.txt
foreach ($comp v $počítačích)
& ‚C:WindowsSystem32SHUTDOWN.exe‘ «-m $comp -r -c $sh_msg -t $sh_delay»
>
Restartujte více počítačů pomocí GUI Shutdowm.exe
Pro ty, kteří se necítí pohodlně pracovat v příkazovém řádku, je k dispozici grafické rozhraní pro příkaz shutdown.exe. Chcete-li vyvolat GUI dialogového okna vzdáleného vypnutí, použijte příkaz:

Jak vidíte, v dialogovém okně vzdáleného vypnutí můžete přidat více počítačů, které se mají restartovat/vypnout, zadat text upozornění a zadat důvod vypnutí, který se má uložit do protokolu událostí systému Windows.
Restartujte nebo vypněte Windows pomocí PowerShellu
V prostředí Windows PowerShell jsou k dispozici následující dva příkazy pro vypnutí a restartování počítače: Restartujte počítač a Stop-počítač. Oba příkazy umožňují vypnout nebo restartovat místní nebo vzdálený počítač (přes síť).

Chcete-li restartovat systém Windows, spusťte:
Postup vypnutí počítače:
Ve výchozím nastavení se restart spustí za 5 sekund. Prodleva před restartem můžete prodloužit:
Restart počítače – zpoždění 60
Obě rutiny mají parametr -ComputerName, který umožňuje zadat seznam vzdálených počítačů, na kterých se má akce provést.
Chcete-li například vzdáleně vypnout dva servery Windows:
Stop-Computer -ComputerName «mun-srv01», «mun-srv02»
Pro připojení ke vzdálenému hostiteli můžete zadat přihlašovací údaje správce:
$Creds = Get-Credential
Restart-Computer -ComputerName mun-srv01-Credential $Creds
WMI a DCOM se používají k připojení ke vzdáleným počítačům (musí být povoleny a nakonfigurovány). Pokud WMI není nakonfigurováno, při spuštění příkazu se zobrazí následující chyba:
Restart-Computer: Nepodařilo se restartovat počítač wks-11222 s následující chybovou zprávou: Přístup byl odepřen. Výjimka z HRESULT: 0x80070005 (E_ACCESSDENIED).

Pokud je na vzdáleném počítači povolena služba WinRM (Windows Remote Management), můžete k připojení použít místo WMI WSman:
Restart-Computer -ComputerName wks-11222 -Protocol WSMan
Pokud jsou na vzdáleném počítači aktivní uživatelské relace, zobrazí se chyba:
Restart-Computer: Nepodařilo se restartovat počítač wks-11222 s následující chybovou zprávou: Vypnutí systému nelze zahájit, protože jsou k počítači přihlášeni další uživatelé.

Jméno aktuálně přihlášeného uživatele na vzdáleném počítači zjistíte příkazem:
Chcete-li vynutit restart, musíte přidat -Platnost parametr:
Restart-Computer -ComputerName wks-11222 -Force
Záznam protokolu událostí s ID události 1074 (Prohlížeč událostí -> Protokoly systému Windows -> Systém) bude obsahovat jméno uživatele, který vypnul/restartoval systém Windows.

Pomocí volby -For můžete restartovat počítač a počkat, až bude k dispozici. Chcete se například ujistit, že se vzdálený počítač úspěšně restartuje a spustí se na něm služba WinRM, což vám umožní se k němu připojit prostřednictvím WS-Management:
Restart-Computer -ComputerName wks-11222 -Wait -For WinRM
Restartování počítače wks-11222 Ověření, zda byl počítač restartován.

Můžete počkat na spuštění služby Remote Desktop Service (RDP) nebo jakékoli jiné služby Windows:
Restart-Computer -ComputerName wks-11222 -Wait -For TermService
Pokud potřebujete restartovat více počítačů současně, můžete použít paralelní spouštění příkazů dostupné v PowerShell 7.x (viz jak aktualizovat PowerShell).
Můžete například získat seznam hostitelů serverů Windows v konkrétním kontejneru Active Directory (organizační jednotka) pomocí rutiny Get-ADComputer a restartovat je ve stejnou dobu:
$Počítače = (Get-ADComputer -Filtr ‘operační systém – jako «*Windows server*» -a povoleno -eq «true»‘ -SearchBase «OU=Servery,DC=woshub,DC=com»).Název
$Počítače | ForEach-Object -Parallel -ThrottleLimit 3















