我有一个要远程管理的Windows框。当我今天早上登录时,“开始”菜单显示一个!关机按钮旁边,通知我有更新要安装。但是它给我安装更新的唯一选择是然后关闭。有没有办法告诉它“安装更新并重新启动”?
我有一个要远程管理的Windows框。当我今天早上登录时,“开始”菜单显示一个!关机按钮旁边,通知我有更新要安装。但是它给我安装更新的唯一选择是然后关闭。有没有办法告诉它“安装更新并重新启动”?
Answers:
是。您可以安装所有可用的更新-通过“控制面板”中的Windows Update或时钟附近系统托盘中的黄色WU护罩。然后,完成后,您可以从“开始”菜单重新启动(或从命令行调用shutdown / r)。
一步实现全部自动化的唯一其他方法是通过编写自己的代码(而不仅仅是简单的脚本),或者使用MS或3rd第三方提供的免费或商用附加工具。
我看到这是一个较旧的问题,但是现在可以安装更新,然后使用Powershell重启。具体来说,您需要下载并安装Windows Update PowerShell模块。然后,您可以运行命令Get-WUInstall -AcceptAll -AutoReboot
(还有其他开关和参数来控制安装哪些更新)。这将导致Windows下载更新,进行安装,然后在完成后重新启动。我认为,这对服务器非常有用,因为您可以运行一个命令,然后再走开。
无法手动启动“安装更新并重新启动”。您可以设置更新的安装时间,然后指定通过自动更新(或Windows Update)控制面板,直接通过注册表或通过组策略在自动更新后重新启动计算机:
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文件),假设更新安装成功,您的计算机将在午夜附近重启。
此外,您可以从任务计划程序GUI中设置“唤醒计算机以执行任务”,还可以检查执行返回代码以查看上次发生的情况。
PS在Win7 64位上测试。