Перезагрузка компьютера
Материал из OSZone.net wiki.
Без перезагрузки компьютера средствами командной строки, как правило, не обходится ни один диск автоматической установки Windows - это завершающая процедура, после которой компьютер уже готов к использованию. Перезагрузить компьютер можно различными способами.
Содержание |
Команда shutdown
shutdown.exe -r -f -t 20 -c "Don`t panic. The system will reboot in 20 seconds."
Справка: shutdown /?
Утилита PsShutdown (sysinternals)
psshutdown -r -f -t 20 -m "Don`t panic. The system will reboot in 20 seconds."
Комбинация ping и wmic
ping -n seconds 127.0.0.1>nul&wmic OS WHERE Primary="TRUE" CALL Win32Shutdown 6
где seconds - желаемое число секунд +1; Win32Shutdown 6 - 6 = 2 (reboot) + 4 (force). Никакого видимого сообщения о перезагрузке выведено не будет.
Скрипт AutoIt
На основе сообщения _MPAK_ на форуме автоустановки.
Для перезагрузки компьютера можно создать скрипт AutoIt с любыми сообщениями:
$j=30 ProgressOn("Пожалуйста, подождите...", "Происходит уничтожение данных :)", "Система обнаружила использование нелегальной" & CHR(10) & "копии Windows. Через " & $j & " сек. все данные" & CHR(10) & "на ваших дисках будут уничтожены.") For $i = 1 to 99 step 3.3 $j=$j-1 sleep(1000) ProgressSet( $i, "Система обнаружила использование нелегальной" & CHR(10) & "копии Windows. Через " & $j & " сек. все данные" & CHR(10) & "на ваших дисках будут уничтожены.") Next ProgressSet(-1 , "Шеф! Все пропало. Прощайте.") Shutdown(2)
sleep(5000)
Утилита Nircmd
Вариант с cmdwait и exitwin
Этот вариант представляет собой объединение двух команд:
nircmd.exe cmdwait [Number of Milliseconds] [NirCmd Command]
Ожидание указанного числа миллисекунд (Number of Milliseconds, 1/1000 секунды), и, затем, выполнение указанной команды (NirCmd Command).
nircmd.exe exitwin reboot {additional option}
Эта команда перезагружает операционную систему, где additional option:
force: принудительно завершает все приложения без ожидания. Использование этого параметра может привести к потере данных;
forceifhung: принудительно завершает приложения, если они «не отвечают». Этот параметр доступен только в Windows 2000/XP (очевидно, и в последующих версиях — AlexII).
Примеры
nircmd.exe exitwin reboot nircmd.exe exitwin reboot forceifhung
Другие параметры команды exitwin (кроме reboot), здесь не рассматриваемые: logoff, poweroff, shutdown.
Таким образом, команда
nircmd.exe cmdwait [Number of Milliseconds] exitwin reboot {additional option}
даёт нужный результат.
Вариант с initshutdown
nircmd.exe initshutdown {message} {timeout value in seconds} {force} {reboot}
message: сообщение, которое будет показано перед завершением работы операционной системы;
timeout value in seconds: число секунд ожидания перед завершением работы операционной системы;
force: принудительное завершение работы всех приложений;
reboot: перезагрузка операционной системы.
Инициирует завершение работы системы. Эта команда работает подобно команде exitwin, но имеет дополнительные возможности, не поддерживаемые командой exitwin. Все параметры команды не обязательные. Если Вы не укажете ни одного параметра, будет инициировано завершение работы системы без отображения сообщения и без ожидания.
Примеры
nircmd.exe initshutdown "Shutting down the system within 60 seconds" 60 reboot nircmd.exe initshutdown "" 0 force
Как и у утилиты PsShutdown у утилиты NirCmd есть возможность отменить завершение работы. Для этого применяется команда abortshutdown, которая позволяет отменить завершение работы, инициированное командой initshutdown.

