Утиліта командного рядка shutdown є вбудованої командою Windows, яка дозволяє перезавантажити, вимкнути комп'ютер, перевести його в сплячий режим або завершити сеанс користувача. У цій інструкції ми покажемо основні приклади використання команди shutdown в Windows (всі розглянуті команди запускаються у вікні Виконати - Win + R ->, в командному рядку cmd.exe або в консолі PowerShell).
Команда shutdown має наступний синтаксис:
shutdown [/ i | / L | / S | / Sg | / R | / G | / A | / P | / H | / E | / O] [/ hybrid] [/ soft] [/ fw] [/ f] [/ m \\ комп'ютер] [/ t xxx] [/ d [p | u] xx: yy [/ c "коментар"]]
Як ви бачите, у команди досить багато опцій, а також є можливість виконувати операції вимикання / перезавантаження на віддаленому комп'ютері.
Вимкнення Windows командою Shutdown
Для виключення ОС Windows і комп'ютера необхідно використовувати команду shutdown з ключем / s.
shutdown / s
перезавантаження Windows
Щоб перезавантажити комп'ютер, необхідно додати параметр / r. Після виконання цієї команди Windows коректно перезавантажиться.
shutdown / r
Завершення сеансу користувача
Щоб завершити поточну сесію користувача (logout), потрібно виконати команду:
shutdown / l
Ця команда аналогічно виконання команди logoff.
Переклад комп'ютера в режим гібернації
Для перекладу сплячий режим (в цьому режимі весь вміст пам'яті записується в файл hyberfil.sys на диск і комп'ютер переходить в сплячий режим зі зниженим електроспоживанням), виконайте команду:
shutdown / h
Перезавантаження комп'ютера з повідомленням користувачам
Ви можете попередити всіх користувачів Windows про майбутній виключенні / перезавантаження комп'ютера або сервера, відправивши повідомлення в усі активні сесії (як правило ця можливість використовується на термінальних RDS серверах, за якими одночасно працюють кілька користувачів, кожен у своїй власній RDP сесії).
shutdown / r / c "Цей сервер буде перезавантажений через 60 секунд."
Відкладене вимикання / перезавантаження комп'ютера
Можна вимкнути або перезавантажити комп'ютер з певною затримкою (за таймером). За допомогою опції / t можна вказати інтервал часу (в секундах), через який ПК / сервер буде перезавантажений або вимкнений. Тим самим ви можете надати користувачам додатковий час для того, щоб встигнути зберегти відкриті файли і коректно закрити програми. Цю опцію зручно використовувати спільно з відправкою повідомлення. У цьому прикладі ми вказуємо, що Windows буде виключена через 10 хвилин (600 секунд) і інформуємо користувачів повідомленням.
shutdown / s / t 600 / c "Сервер буде вимкнений через 10 хвилин. Збережіть свої документи!"
Користувачеві буде видано попередження про заплановане вимкнення: Ваш сеанс буде завершений.
Якщо затримка дуже тривала, наприклад, 100 хвилин (6000 секунд), то замість попереджувального вікна з'являється спливаюче повідомлення в нижньому правому куті екрану: "Ваш сеанс буде завершений. Робота Windows буде завершена через 100 хв".
Скасування вимикання / перезавантаження комп'ютера
Після запуску команди виключення або перезавантаження Windows, за замовчуванням утиліта shutdown очікує 60 секунд, не виконуючи ніяких дії. Адміністратора може скасувати перезавантаження або вимкнення телефону, якщо протягом цього часу встигне виконати команду:
shutdown / a
Після скасування виключення з'явиться спливаюче повідомлення в нижньому правому куті екрану: "Вихід із системи скасований. Заплановано завершення роботи скасовано".
Перезавантажити комп'ютер негайно
Щоб вимкнути або перезавантажити комп'ютер негайно, не чекаючи стандартні 60 секунд, потрібно вказати значення 0 для параметра / t. Наприклад, для негайного перезавантаження комп'ютера:
shutdown / r / t 0
Дуже важливий ключ / f. Я використовую його практично завжди при виключенні або перезавантаження серверів Windows. Даний атрибут забезпечує примусове завершення всіх запущених програм і процесів, не чекаючи підтвердження від користувача (думати ж ми чекати підтвердження закриття програм від всіх користувачів на термінальному сервері, його можна просто не дочекатися).
Наступна команда виконає перезавантаження комп'ютера з автоматичним запуском всіх зареєстрованих додатків після перезавантаження (маються на увазі програми, зареєстровані в системі з використанням функції API RegisterApplicationRestart).
shutdown / g
Запуск команди shutdown на віддалених комп'ютерах
Ви можете перезавантажити віддалений комп'ютер по мережі, для цього у вас повинен бути до нього мережевий доступ, а обліковий запис, з-під якої запускається команда shutdown повинна входити в групу локальних адміністраторів на віддаленому комп'ютері (сервері):
shutdown / r / t 120 / m \\ 192.168.1.100
Якщо всі зазначені умови виконуються, але при виконанні команди shutdown з'являється помилка "Немає доступу (5)", на віддаленому комп'ютері потрібно дозволити віддалений доступ до адміністративних ресурсів (C $, ADMIN $), змінивши значення параметра LocalAccountTokenFilterPolicy на 1.
reg add "HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Policies \ System" / v "LocalAccountTokenFilterPolicy" / t REG_DWORD / d 1 / f
Якщо вам необхідно віддалено перезавантажити безліч комп'ютерів, їх список можна зберегти в текстовий файл і запустити віддалену перезавантаження всіх комп'ютерів за допомогою такого PowerShell скрипта:
$ Sh_msg = "Ваш комп'ютер буде автоматично перезавантажений через 10 хвилин. Збережіть свої файли і закрийте запущені програми"
$ Sh_delay = 600 # секунд
$ Computers = gc C: \ PS \ PC-list.txt
foreach ($ comp in $ computers)
& 'C: \ Windows \ System32 \ SHUTDOWN.exe' "-m \\ $ comp -r -c $ sh_msg -t $ sh_delay"
Графічний інтерфейс команди shutdown
Для тих, кому не комфортно працювати в командному рядку, є графічний інтерфейс для команди shutdown, щоб його викликати, наберіть:
shutdown / i
Як ви бачите, в діалозі віддаленого завершення роботи ви можете додати кілька комп'ютерів, які потрібно перезавантажити / виключити, вказати текст повідомлення і задати причину виключення для збереження в журналі Windows.
Ярлик для перезавантаження комп'ютера
Для зручності користувачів ви можете створити на робочому столі ярлики для виключення або перезавантаження комп'ютера з потрібними настройками. Такий ярлик може бути корисний для виконання перезавантаження з RDP сесії, коли відсутні кнопки перезавантаження / завершення роботи комп'ютера в меню Пуск.
Якщо ви хочете, щоб ваш комп'ютер або сервер завжди вимикався / перезавантажувався в певний час, ви можете додати команду shutdown з певними параметрами в планувальник завдань Windows taskschd.msc.
Наприклад, таке завдання планувальника буде щодня перезавантажувати комп'ютер вночі в 0:00.
Або ви можете створити нове завдання планувальника з PowerShell:
$ Trigger = New-ScheduledTaskTrigger -At 00:00 am -Daily
$ User = "NT AUTHORITY \ SYSTEM"
$ Action = New-ScheduledTaskAction -Execute "shutdown.exe" -Argument "-f -r -t 120"
Register-ScheduledTask -TaskName "RebootEvertyNight_PS" -Trigger $ Trigger -User $ User -Action $ Action -RunLevel Highest -Force