Вопрос или проблема
Предположим, я запланировал выключение/перезапуск в Windows, например:
shutdown /r /f /t 300
Есть ли способ узнать, сколько времени осталось или во сколько произойдет перезапуск?
Я могу отменить выключение,
shutdown /a
поэтому предполагаю, что Windows отслеживает это независимо от оболочки, которую я использовал для планирования выключения.
Как я могу получить эту информацию? В основном, я хотел бы знать, сколько времени осталось (или если есть активное запланированное выключение)?
https://superuser.com/questions/1028374/determine-whether-a-shutdown-is-pending
Посмотрите ссылки выше для справки.
Я провел небольшое исследование в интернете, и кажется, что прямого способа получить нужную информацию нет. Вы либо должны выполнять запросы с помощью PowerShell, либо искать в журналах событий.
Я создал функции для управления задачами выключения. Вы не можете получить информацию с помощью shutdown -s -t
; лучше использовать schtasks
.
function Schedule-Shutdown { schtasks /create /tn "SchShutd" /tr "shutdown -s -f" /sc once /st $args[0] }
function Schedule-Shutdown-Info { $t=Get-ScheduledTask -TaskName "SchShutd" 2>$null; if ($t){$t.Triggers.StartBoundary}else{"No task found"} }
function Schedule-Shutdown-Cancel { schtasks /delete /tn "SchShutd" /f }
Поместите это в ваш профиль PowerShell, чтобы сделать его доступным глобально.
notepad $PROFILE # открывает ваш профиль, вставьте сюда
Разрешите выполнение скриптов
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
Пример выполнения:
Schedule-Shutdown 15:00
SUCCESS: The scheduled task "SchShutd" has successfully been created.
Schedule-Shutdown-Info
2025-01-10T15:00:00
Schedule-Shutdown-Cancel
SUCCESS: The scheduled task "SchShutd" was successfully deleted.
Schedule-Shutdown-Info
No task found
Ответ или решение
Конечно! Если вы хотите узнать, как определить запланированное время завершения работы или перезагрузки системы Windows, у вас есть несколько подходов. Давайте рассмотрим их более подробно.
Использование команды shutdown
Когда вы запланировали завершение системы в Windows с помощью команды:
shutdown /r /f /t 300
эта команда указывает на перезагрузку через 5 минут (300 секунд), принудительно закрывая все приложения. Однако данная команда не предоставляет функции для проверки оставшегося времени до выключения.
Использование PowerShell
Вы можете создать функции PowerShell, чтобы более гибко управлять запланированными задачами завершения работы. В PowerShell для этого существует более мощный инструмент – schtasks
. Вы можете создать функцию для запланированного выключения системы и получить информацию о запланированном времени с помощью следующего сценария:
function Schedule-Shutdown {
schtasks /create /tn "SchShutd" /tr "shutdown -s -f" /sc once /st $args[0]
}
function Schedule-Shutdown-Info {
$t=Get-ScheduledTask -TaskName "SchShutd" 2>$null;
if ($t) {
$t.Triggers.StartBoundary
} else {
"No task found"
}
}
function Schedule-Shutdown-Cancel {
schtasks /delete /tn "SchShutd" /f
}
Как это работает?
- Запланированное завершение: Используя
Schedule-Shutdown 15:00
, вы создаёте задачу, которая выключит систему в указанное время. - Информация о времени: С помощью
Schedule-Shutdown-Info
вы можете проверить, когда задача будет выполнена. - Отмена задачи:
Schedule-Shutdown-Cancel
позволяет удалить запланированную задачу по завершению работы.
Установка профиля PowerShell
Можно сделать данные функции доступными глобально, добавив их в ваш профиль PowerShell:
notepad $PROFILE
После этого откроется файл профиля, в который необходимо вставить данные функции. Чтобы позволить выполнение таких скриптов, измените политику выполнения команд:
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
Заключение
Данные методы оптимальны для управления запланированными задачами выключения в Windows на профессиональном уровне. Это гибкое решение, которое позволит как установить, так и контролировать запланированные задачи завершения системы посредством PowerShell.