Как узнать, когда запланировано выключение компьютера в Windows 7?

Как узнать, когда запланировано выключение компьютера в Windows 7?

Допустим, я использую «shutdown -s -f -t 13600» для инициирования запланированного выключения.

В Windows XP я всегда видел диалоговое окно, предупреждающее о предстоящем завершении работы.

Однако в Windows 7 появляется всплывающее окно в системном трее, которое исчезает через пару секунд.

Как мне запросить или включить диалоговое окно, как в Windows XP, чтобы узнать, когда произойдет выключение?

решение1

Я нашел способ.

Если вместо использованияshutdown -s -f -t 13600

ты используешьshutdown -s -f -t 13600 -c "13600"

Опция -cдобавляет комментарий к событию выключения, зарегистрированномуПросмотр событий Windows

Ваш комментарий «13600» будет виден в средстве просмотра событий в красном овале: просмотрщик событий, показывающий системные события

Чтобы увидеть это представление самостоятельно: введите «Просмотр событий» в меню «Пуск» и перейдите в раздел Журналы Windows -> Системаи вы увидите список системных событий.

Любые события сИдентификатор событияиз1074будет отложенное отключение.

Итак, нам нужен код, который получает последнее 1074событие, ищет значение в комментарии к событию и добавляет это значение (в секундах) ко времени создания события, тем самым получая время завершения работы.

Я создал функцию для Windows PowerShell (входит в состав Windows 7), которая делает следующее:

function nextShutdownTime
{
    $events = Get-WinEvent -FilterHashtable @{logname="system"; id=1074}
    $event = $events[0]
    $eventXML = [xml]$event.ToXml()
    return $event.TimeCreated.addSeconds([int]$eventXML.Event.EventData.Data[5])
}

Просто добавьте его в свой профиль PowerShell и в PowerShell просто выполните команду, nextShutdownTimeчтобы увидеть ожидаемое время завершения работы.

решение2

Самый простой способ узнать, происходит ли выключение, — просто запланировать еще одно выключение. Дайте ему тайм-аут не менее 200 секунд, просто чтобы быть уверенным. Либо вы получите сообщение об ошибке, сообщающее, что уже происходит выключение, либо он инициирует отключение по времени, которое вы можете прервать, введя shutdown /a.

Итак, вы печатаете

shutdown /r /t 600

Теперь вы либо получаете

C:\Users\Administrator>shutdown /r /t 600
A system shutdown has already been scheduled.(1190)

или он запланирует новое отключение.

Если вы просто хотите убедиться, что выключение не запланировано, вы можете просто попытаться прервать работу. Либо произойдет прерывание, либо будет указано, что выключение не запланировано.

C:\Users\Leon>shutdown /a
Cannot abort a system shutdown. There is no shutdown in progress (1116)

решение3

Я только что потратил около часа, пытаясь сделать это именно так, как вы хотели. Я экспериментировал, искал и искал, но не смог сделать это идеально, но я смог придумать что-то.

Я перепробовал все комбинации выключения (параметры -i -c -d), но ничего.

Я также экспериментировал с графическим интерфейсом после опции -i.

Я также пробовал изменить время отображения всплывающего окна, чтобы оно дольше оставалось в системном трее, но даже оно исчезает.

Ближайший вариант, который я использую, — это следующий пример команды:shutdown -i -r -t 300

Я думаю, дело в том, что они просто изменили способ его работы, и я не думаю, что есть способ обойти это на 100%, но теперь -iвызывает диалоговое окно, тогда как раньше оно вызывало нужный вам экран. Когда я использовал -iв Windows 7, мне приходилось заполнять поле, и вот результат:

введите описание изображения здесь

Затем я нажал Enterи получил это:

введите описание изображения здесь

Я проверил, и, похоже, верхнее значение, которое можно ввести в «Отображать предупреждение в течение X секунд», составляет всего 600, несмотря на то, что можно ввести до 999 (очень странное программирование).

решение4

Как мне запросить или включить диалоговое окно, как в Windows XP, чтобы узнать, когда произойдет выключение?

Собственная программа завершения работы в Windows 7 не предоставляет диалогового окна обратного отсчета (или кнопки отмены), как в предыдущих версиях Windows.

Если вам необходимо запланировать выключение и добавить обратный отсчет и кнопку отмены, вы можете использовать приложение HTA, которое может содержать текст, изображения, обратный отсчет и кнопку отмены.

Вот пример: Скрипт HTA — сценарий завершения работы и предупреждающее сообщение

Диалог выключения

Источник — мой личный блог.

Связанный контент