Я использую эту команду в autoit, чтобы выключить свой ноутбук, если таймер заканчивается

Run(@SystemDir & "\shutdown.exe /f /s /t 10", "", @SW_MAXIMIZE)  

В большинстве случаев он работает нормально, но иногда я получаю BlueScreen при включении компьютера, обычно перед тем, как войти в систему и после завершения анимации логотипа Windows. Это из-за непосредственного выключения компьютера командой shutdown или могут быть другие проблемы? Я должен отметить, что когда мой скрипт autoit выключает компьютер, обычно открываются несколько браузеров с несколькими открытыми вкладками, а также запущены другие приложения. Итак, я хочу знать,

В чем разница между выключением компьютера через меню «Пуск», непосредственным нажатием кнопки питания и выполнением команды выключения из сценария autoit? Резко ли завершает работу компьютера с помощью команды выключения, в то время как другие пользовательские приложения работают каким-либо образом опасно?

Моя ОС - Windows 7, а компьютер - ноутбук

2 ответа2

3

Чтобы ответить на вопрос:

Команда shutdown - это то, что запускает ваш компьютер, когда вы нажимаете кнопку питания (если вам назначено выключение) или путем выключения через меню «Пуск». Команда предоставляется Microsoft и, следовательно, не должна вызывать BSOD, особенно в вашем случае, когда BSOD происходит при запуске.

Использование параметров /f и / или /t 0 также не вызовет проблем с оборудованием, в этом случае это вызовет проблемы только с приложениями (приложения не закрываются должным образом, несохраненная работа и т.д.).

В твоем случае:

Вы должны будете опубликовать содержимое своего аварийного дампа, чтобы любой мог определить, что на самом деле вызывает BSOD. Много раз это связано с периферийными устройствами / драйверами, но это может быть что угодно.

Как указано в комментариях, вы можете увидеть, есть ли что-нибудь в журнале событий, но, поскольку ваш BSOD происходит до загрузки Windows, у вас меньше шансов найти причину. Аварийный дамп будет гораздо более надежным источником.

0
/f         Force running applications to close without forewarning users.
       The /f parameter is implied when a value greater than 0 is
       specified for the /t parameter.

Так что, если вы не выполните /t 0 без f, это означает, что все заканчивается (оно не может закрыться), оно появляется.

Он выключает компьютер, а не просто делает то, что вытягивает кабель питания.

Я не могу сказать вам, что есть какие-то другие факторы (даже autoit), но у меня самого не было синего экрана от команды.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .