http://www.manhunter.ru/software/440_perezagruzka_kompyutera_iz_komandnoy_stroki.html
Перезагрузка компьютера из командной строки
В некоторых случаях требуется перезагрузить компьютер из
командной строки, пакетного файла, через удаленный доступ или в
автоматическим режиме без участия человека (например, через
планировщик). В этом случае привычная комбинация меню "Пуск" -
"Завершение работы", естественно, недоступна. Можно, конечно,
воспользоваться
сторонними утилитами
различных разработчиков, скриптами AutoIt и другими вспомогательными
средствами, но они могут быть не всегда доступны. Здесь я собрал
несколько способов перезагрузки компьютера с использованием команд самой
операционной системы. Некоторые из них работают только на определенных
версиях Windows, а некоторые универсальные.
Первая универсальная команда перезагрузки через
shutdown, работающая на Windows XP и Windows 7. Параметры команды:
-r - перезагрузка (reboot),
-f - остановить все запущенные приложения,
-t 0 - перезагрузить сразу же, без ожидания.
shutdown -t 0 -r -f
Вторая команда экзотичная, выполняется через команду
ping. Работает также на Windows XP и Windows 7:
ping -n 0 127.0.0.1>nul&wmic OS WHERE Primary="TRUE" CALL Win32Shutdown 6
Следующие две команды специфичны только для Windows XP. Эта работает на всех версиях Windows XP:
rundll32 user.exe,ExitWindowsExec 2
А эта работает только до версии SP2 включительно. Останавливается служба
журнала событий, после чего система автоматически уходит в
перезагрузку. На более новых системах подобный фокус не срабатывает.
echo y|net stop eventlog
Следующий метод перезагрузки самый громоздкий и основан на использовании
скрипта VBS. Скрипт состоит из нескольких строчек, поэтому его придется
создавать через команды консоли
copy con имя_файла.vbs или через перенаправление вывода команды
echo в файл. Зато сохраненный файл можно использовать в будущем. Такой способ подходит для Windows XP и Windows 7.
set objWMIService = GetObject("winmgmts:" & "{impersonationLevel = impersonate}!\\.\root\cimv2")
set colSoftware = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
for each objSoftware in colSoftware
objSoftware.Win32Shutdown 1
next
И напоследок команда для перевода компьютера в спящий режим (hibernate).
Команда работает на Windows 7 и требует прав Администратора:
rundll32.exe powrprof.dll,SetSuspendState
Надеюсь, что эта информация окажется вам полезной. Если вы знаете еще
какие-нибудь интересные способы перезагрузки, то напишите в
комментариях, я обязательно добавлю их в статью.