Назад | Перейти на главную страницу

Microsoft Windows - установка обновлений и перезагрузка (вместо установки и выключения)

У меня есть компьютер с Windows, которым я хочу управлять удаленно. Когда я вошел в систему сегодня утром, в меню «Пуск» отображается значок! рядом с кнопкой «Завершение работы», уведомляя меня о наличии обновлений, которые необходимо установить. Но единственный вариант, который он дает мне для установки обновлений, - это выключение. Нет способа сказать ему «установить обновления и перезапустить»?

Да. Вы можете установить все доступные обновления - через Центр обновления Windows на панели управления или через желтый экран WU на панели задач рядом с часами. Затем, когда это будет сделано, вы можете выполнить перезагрузку из меню «Пуск» (или вызвать shutdown / r из командной строки).

Единственный другой способ автоматизировать все это за один шаг - написать собственный код (а не просто сценарий) или использовать дополнительные инструменты, бесплатные или коммерческие, от MS или третьих сторон.

У установки обновлений во время перезагрузки / выключения есть определенные преимущества:

  • Установка не замедляется и не изменяется другим запущенным программным обеспечением, AVP и т. Д.

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

К сожалению, похоже, что это невозможно сделать с помощью инструментов, предоставленных Microsoft. я использую эта бесплатная утилита это сделает это за вас. Я создал ярлык со следующими параметрами и поместил его в меню кнопки Пуск:

ShutdownWithUpdates /r /f

Из того, что я вижу, он также может перезагружаться и устанавливать обновления на удаленную рабочую станцию ​​в настройке активного каталога.

Подробнее здесь.

Я вижу, что это старый вопрос, но теперь можно установить обновления, а затем перезагрузиться с помощью Powershell. В частности, вам необходимо скачать и установить Модуль Windows Update PowerShell. Затем вы можете запустить команду Get-WUInstall -AcceptAll -AutoReboot (есть другие переключатели и аргументы для управления установками обновлений). Это приведет к тому, что Windows загрузит обновления, установит их, а затем перезагрузится по завершении. На мой взгляд, это отлично подходит для серверов, потому что вы можете запустить одну команду, а затем уйти.

Невозможно вручную запустить «Установить обновления и перезапустить». Вы можете установить время для установки обновлений, а затем указать, что компьютер может перезагружаться после автоматического обновления, либо через панель управления автоматическими обновлениями (или Центр обновления Windows), либо непосредственно через реестр, либо через групповую политику:

http://support.microsoft.com/kb/328010

Но что касается опции «Установить обновления и перезагрузить» в один клик, то ее нет.

Это отображается высоко в поиске Google «Установить и перезапустить, а не установить и выключить». Следовательно, я подумал, что должен добавить решение, которое я написал для этой точной досадной проблемы (люди говорят мне, что Win10 имеет это по умолчанию, но я не использую Win10).

Это работает с использованием двух командных файлов. Первый называется rebootAfterUpdates.bat.

@echo OFF
@setlocal ENABLEEXTENSIONS
@set REBOOT_KEY="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired"
@SET REGDWORD=REG_DWORD
@SET VALUEVAL=0x1

@REM skip=4 may be required on some versions of Windows
@FOR /F "usebackq skip=2 tokens=1-3" %%A IN (`reg query %REBOOT_KEY% /s 2^>nul`) DO (
    @IF %%B EQU %REGDWORD% (
        @IF %%C EQU %VALUEVAL% (
            call :REBOOT
        )
    )
)

:NOREBOOT
@Echo No reboot required
exit /b 36877
REM 36877 is 0x900D (i.e. Good, no reboot required)
:REBOOT
@ECHO Here We REBOOT
SHUTDOWN -r -f -t 10
exit /b 3059719
REM 3059719 is 0x2EB007 (i.e. REBOOT was triggered)

Второй называется "scheduleRebootAfterUpdates.bat":

@schtasks /query /TN RebootAfterUpdates > doh
@findstr /B /I "RebootAfterUpdates" doh >nul
@if %errorlevel%==0  goto :update
@goto :create

:update
@del doh
@SCHTASKS /Change /TN RebootAfterUpdates /SD %DATE%
@echo Task updated to execute today
@goto :exitBat

:create
@del doh
@SCHTASKS /Create /SC ONCE  /TN RebootAfterUpdates /TR "C:\tmp\Scripts\rebootAfterUpdates.bat" /ST 23:55 /sd %DATE%  /ru SYSTEM /f
@echo Task created. Set the "Wake to Execute Flag" through Task Scheduler GUI

:exitBat
@exit /b

Предполагается, что оба файла находятся в папке C: \ tmp \ Scripts \ Когда Windows предлагает вам «Установить обновления», позвольте ей начать установку обновлений. Пока он устанавливает обновления, запустите "scheduleRebootAfterUpdates.bat".

Предыстория операции:

Если обновления требуют перезагрузки, некоторые разделы реестра (в разделе реестра WindowsUpdate) устанавливаются со значением 0x1.

Проверяем, существуют ли эти ключи в первом bat-файле. Если они это сделают, сразу перезагрузитесь.

Обычно я запускаю обновления, когда собираюсь уйти с работы (и примерно за 4-5 часов до полуночи).

Вторая летучая мышь создает запланированную задачу (или обновляет существующую задачу для запуска за 5 минут до полуночи), и эта запланированная задача выполняет первую летучую мышь.

Итак ... хотя это и не самое элегантное решение, в два шага (1. запустить «Установить обновления» и 2. запустить второй файл bat), ваш компьютер перезагрузится около полуночи, если установка обновлений прошла успешно.

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

P.S. Проверено на Win7 64bit.