Существует возможность вручную остановить каждую системную службу (по крайней мере, некоторые из них), после чего отключить компьютер. Для определения списка запущенных служб введите такую команду:

net start

Можно добавить параметр > [имя файла] после этой команды, что позволит перенаправить исходящие данные команды в указанный файл. Например, net start > services.lst. Для остановки службы введите следующую команду:

net stop “<имя службы>”

Например:

net stop “spooler

Некоторые службы в качестве подтверждения на остановку работы требуют нажатия клавиши <Y>, поэтому добавьте для них параметр /y. Существует возможность получить список всех запущенных служб и создать на его основе командный файл с расширением .BAT. Например:

net stop “Computer Browser”
net stop “Messenger”
.
.
net stop “Workstation”

В конце этого файла добавьте следующую команду:

shutdown /r /y /l /t:0

Эта команда используется для перезагрузки компьютера (а для его выключения удалите параметр /r). Программа SHUTDOWN.EXE входит в стандартную версию операционной системы Windows XP. В начало кода командного файла можно добавить команду @echo off. Кроме всего прочего, существует возможность добавить проверку параметра командной строки, указывающего на необходимость перезагрузки или выключения компьютера. Сохраните соответствующий файл под именем SHUTFAST.BAT и вызывайте его с помощью команды shutfast reboot для перезагрузки или shutfast shutdown для выключения системы.

@echo off
net stop "Computer Browser"
net stop "Messenger"
net stop "Net Logon"
net stop "NT LM Security Support Provider"
net stop "Plug and Play"
net stop "Protected Storage"
net stop "Remote Access Autodial Manager"
net stop "Server"
net stop "Spooler"
net stop "TCP/IP NetBIOS Helper" /y
net stop "Workstation"

if %1==reboot goto reboot
shutdown /l /y /t:0
exit
:reboot
shutdown /l /y /r /t:0
exit

Для этого командного файла на рабочий стол можно добавить ярлык с необходимыми параметрами. Кроме того, имеет смысл сократить время, которое Windows затрачивает на остановку системной службы перед завершением ее работы, для этого необходимо выполнить следующие действия.

  1.  Запустите редактор системного реестра (REGEDIT.EXE).

  2.  Перейдите к разделу HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control.

  3.  Дважды щелкните мышью на записи WaitToKillServiceTimeout (REG_DWORD) и измените значение времени в миллисекундах, которое должно пройти после выхода из системы/ее выключения и перед отображением диалоговых окон Wait/End Task/Close. Например, для 10 секунд используется значение 10000. По умолчанию установлено значение 20000.

  4.  Добавьте запись HangAppTimeout (REG_DWORD) и измените ее значение, так чтобы оно было равно количеству миллисекунд перед отображением диалоговых окон Wait/End Task/Close
после попытки завершить работу приложения.

  5.  Добавьте запись AutoEndTask (REG_DWORD) и присвойте ей значение 1. Таким образом указывается запрет на отображение диалоговых окон Wait/End Task/Close.