У меня есть компьютер с 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.