Microsoft Windows-安装更新并重新启动(而不是安装和关闭)


27

我有一个要远程管理的Windows框。当我今天早上登录时,“开始”菜单显示一个!关机按钮旁边,通知我有更新要安装。但是它给我安装更新的唯一选择是然后关闭。有没有办法告诉它“安装更新并重新启动”?


2
什么版本的Windows?
安迪·辛

不要忘记在您的问题上标记答案,即使您最终回答自己的问题也是如此。
mfinni 2012年

1
如果您最终想编写该过程的脚本,则可以作为一个有用的起点:scms.waikato.ac.nz/~harry/wsusupdate.vbs
哈里·约翰斯顿

这是设计使然,Microsoft假定您通常不在乎关机需要多长时间(除非是由于电源故障导致的,所以关机-s -t 00将避免更新),但是您会担心关机多长时间。重新启动需要花时间,因为重新启动意味着您希望主机上托管的服务正常运行。
亚历克斯·贝里

我不同意。我可能想重新启动以便安装需要重新启动的更新。而且,在我工作的地方,存在一个怪异的限制,即我们无法通过Windows Update安装更新,因此必须通过关闭来安装它们。我希望能够安装它们并重新启动,就像之前一样。
斯图尔特

Answers:


15

是。您可以安装所有可用的更新-通过“控制面板”中的Windows Update或时钟附近系统托盘中的黄色WU护罩。然后,完成后,您可以从“开始”菜单重新启动(或从命令行调用shutdown / r)。

一步实现全部自动化的唯一其他方法是通过编写自己的代码(而不仅仅是简单的脚本),或者使用MS或3rd第三方提供的免费或商用附加工具。


是的,手动安装,然后正常重启。
布伦特·帕布斯特

3
正常重启似乎并未真正安装更新。
CoolUserName 2012年

2
CoolUserName-是的,我知道。这就是为什么我说1)安装更新,然后2)重新启动。
mfinni 2012年

10

在重新启动/关闭期间安装更新有某些好处:

  • 安装不会减慢安装速度,也不会被其他正在运行的软件,AVP等篡改安装。

  • 没有用户界面可以处理,单击等。它的处理速度更快。完成后,在重新启动的情况下,计算机就可以使用了。

不幸的是,微软提供的工具似乎无法做到这一点。我使用了这个免费的实用程序,它将为您服务。我使用以下参数创建了快捷方式,并将其放入“开始”按钮菜单中:

ShutdownWithUpdates /r /f

据我所知,它还可以重新启动并在活动目录设置中的远程工作站上安装更新。

在这里阅读更多


8

我看到这是一个较旧的问题,但是现在可以安装更新,然后使用Powershell重启。具体来说,您需要下载并安装Windows Update PowerShell模块。然后,您可以运行命令Get-WUInstall -AcceptAll -AutoReboot(还有其他开关和参数来控制安装哪些更新)。这将导致Windows下载更新,进行安装,然后在完成后重新启动。我认为,这对服务器非常有用,因为您可以运行一个命令,然后再走开。



2

这在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位上测试。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.