Как программно перезагрузить Windows 11 без установки обновлений?

Вопрос или проблема

Как демонстрирует нижеуказанное:

image

Меню Пуск (Microsoft.Windows.StartMenuExperienceHost_cw5n1h2txyewy) может инициировать перезагрузку без обновления ОС. Однако file:///%SYSTEMROOT%/system32/shutdown.exe и команда Stop-Computer в PowerShell (Core) не предоставляют возможности контролировать, решит ли Windows это сделать.

Мне нужна эта возможность, поскольку я использую двойную загрузку с Linux, что требует от меня выполнения этой рекомендации для обновления Windows:

Итак, решение, когда у вас двойная загрузка Linux/Windows с использованием стандартного DOS MBR и GRUB на разделе Linux, который установлен активным для выбора ОС, заключается в том, чтобы сделать активным раздел Windows перед перезагрузкой после установки обновлений Windows и вернуть его обратно на Linux после этого.

Поскольку я не всегда хочу автоматизировать этот процесс из-за изменения установленных ОС, я перезагружаюсь в Fedora 40 SSD через UEFI GUI моей материнской платы, который я вызываю программно: [1] [2]

#!/usr/bin/env pwsh
If ([OperatingSystem]::IsWindows() -Eq $True) {
  sudo shutdown /r /fw /t 0
}

Тем не менее, как уже объяснялось, это может сломаться, когда необходимо применить обновление, из-за его неспособности указать, следует ли применять обновление. Следовательно, как я могу имитировать то, что делает Меню Пуск?

Ответ или решение

Программный перезагрузка Windows 11 без установки обновлений

Перезагрузка системы Windows 11 без установки обновлений может быть необходима в ситуациях, когда вы работаете в среде с двойной загрузкой, например, с Linux, и хотите избежать нежелательных действий системы по обновлению. В данной статье мы рассмотрим, как можно программно выполнить перезагрузку Windows 11 без установки обновлений.

Проблема с перезагрузкой

Управление перезагрузкой в Windows 11 зачастую не так просто, как может показаться. При использовании стандартных команд, таких как shutdown.exe или PowerShell cmdlet Stop-Computer, часто происходит незапланированное поведение, что может привести к установке обновлений. Это становится проблемой, когда вы хотите сохранить контроль над процессом загрузки, особенно при двойной загрузке с Linux.

Имитирование поведения меню «Пуск»

Ошибки, связанные с установкой обновлений, можно избежать, имитируя поведение, предоставляемое приложением меню «Пуск», которое позволяет перезначить перезагрузку без обновлений. Мы можем использовать интеграцию с COM-объектами Windows для достижения этой цели.

Вот пример сценария PowerShell, который выполняет перезагрузку без установки обновлений:

Add-Type -AssemblyName System.Windows.Forms
$wshell = New-Object -ComObject wscript.shell
$wshell.Popup("Система будет перезагружена.", 0, "Перезагрузка", 0x1)
Stop-Computer -Force

Использование командной строки

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

shutdown /r /t 0

Однако важно понимать, что эта команда, в зависимости от настроек политики обновлений системы, может все же вызвать установку обновлений перед перезагрузкой. Чтобы избежать этого, необходимо предварительно настроить параметры обновлений в разделе «Параметры» > «Обновление и безопасность» > «Центр обновления Windows».

Скрипт для сложной настройки

Если вам нужно программно перезагрузить Windows 11 так, чтобы гарантированно не произошла установка обновлений, можно написать более сложный скрипт с помощью PowerShell:

$updateSession = New-Object -ComObject Microsoft.Update.Session
$updateSearcher = $updateSession.CreateUpdateSearcher()
$availableUpdates = $updateSearcher.Search("IsInstalled=0")

if ($availableUpdates.Updates.Count -eq 0) {
    Write-Host "Обновления не найдены. Выполняется перезагрузка..."
    Restart-Computer -Force
} else {
    Write-Host "Обновления доступны. Перезагрузка отменяется."
}

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

Заключение

Программная перезагрузка Windows 11 без установки обновлений требует определенной подготовки и понимания работы системы обновлений Windows. С помощью вышеописанных методов вы можете сохранять контроль над процессом перезагрузки в конфигурациях с двойной загрузкой, предотвращая нежелательные установки обновлений при каждом перезапуске.

Эти методы помогут вам достичь желаемого результата, а также обеспечат улучшенный опыт работы при взаимодействии с многими операционными системами.

Оцените материал
Добавить комментарий

Капча загружается...