6

我正在做一个项目,目标是能够 100% 更新 Windows 计算机。这意味着无需用户交互即可自动更新窗口的程序或脚本。理想情况下,可以从另一个脚本运行的独立脚本。

原因:我需要更新我工作中的很多计算机。它们可以处于任何补丁级别以及从 Windows XP 到 Windows 8 的所有内容。我的目标是启动脚本,等待/执行其他操作,然后找到完全打补丁的计算机。

我通过在MDT Task Sequence中找到 ZTIWindowsUpdate.wsf 解决了很多问题。

这可以像这样从管理员 cmd 使用:

cssript.exe ZTIWindowsUpdate.wsf

到目前为止,我的问题是计算机需要在某些更新之间重新启动。可能是因为依赖。ZTIWindowsUpdate.wsf 需要以管理员身份运行,我似乎找不到在重新启动时以管理员身份启动它的解决方案。此外,如果我让脚本在启动时运行,我该如何停止它,以及我如何知道何时停止它?

有人可以帮助解决这个问题的万无一失吗?

谢谢!

4

6 回答 6

8

不需要完全更新 Windows 操作系统,不需要大多数更新,大多数更新与安全无关,没有它们我们也可以生存,您需要阅读每个更新的说明以了解所做的更改。在几种情况下,完全更新 Windows 可能会对性能产生负面影响。

您只需要下载所需的更新,然后使用此批处理脚本将其存储在一个文件夹中:

@Echo off
For %%# in (*.msu) Do (
    Echo: Installing update: %%#
    Wusa "%%#" /quiet /norestart
)
Echo Windows Update finished.
Pause&Exit

您也可以使用 winrar 将文件夹(更新 + 脚本)压缩为 Self 可执行文件,以将其作为独立文件分发。

信息:

Wusa .exe 是Windows Update 命令行应用程序。

这些文件是一个一个处理的,而不是一次处理的。

静音开关使安装静音。

即使需要,安装更新后 norestart 开关也不会重新启动

如果在操作系统中安装了更新,则不会再次安装,不会出现错误窗口或停止脚本的执行。

PS:见乌萨/?更多开关。

我希望这有帮助。

更新:

另一种选择是使用WSUS实用程序下载并安装所有更新。

http://download.wsusoffline.net/

Win7 x64(例如)的更新存储在此处:“...\wsusoffline\client\w61-x64\glb”

PS:如果需要在“后台”中自动执行任务,则需要在应用程序的“CMD”目录中的“DoUpdate.cmd”批处理文件。

在此处输入图像描述

于 2013-04-24T00:53:29.173 回答
2

您所描述的问题的最简单解决方案是让您的脚本为内置管理员帐户配置自动登录,然后将自身添加到 Startup 文件夹。您确实需要知道(或重置)管理员帐户密码才能使用此选项。

还有许多其他可能性,例如:使用启动脚本和 psexec;使用 srvany 创建运行脚本的服务;使用任务调度程序来安排你的脚本以交互或非交互方式自动运行;禁用 WUA,为您使用的帐户配置自动登录,并将脚本添加到 Startup 文件夹。

请注意,如果您可以设置 WSUS 服务器或(如果您还没有 Windows 服务器更简单、更便宜)透明缓存代理,您将节省时间和带宽。但是,这不会避免在更新序列期间需要重新启动。

您可能会发现我的脚本作为 ZTIWindowsUpdate.wsf 的替代起点很有用,只是因为它更小且更易于理解。

于 2013-04-25T23:59:46.087 回答
1

WindowsUpdate 过程中最耗时的事情是下载更新的安装文件。您应该查看网络中安装的 WUS(Window 更新服务器)的 lokaly,并确保 PC 从 WUS 更新。如果 PC 都在 ActiveDirectory 域中,那么所需的设置很容易管理。但如果不是这个设置可以制作一个简单的批处理脚本,它使用正常的 Windows 更新例程。

另一种解决方案是制作批处理脚本,在其中使用静默开关安装预下载的 updateFiles。Allmoast 每个 setup.exe 都有这样一个静音开关。如果不需要更新,则此上传会自动停止更新。我现在正在安静地使用这样的批处理脚本。

PS:如果计算机来自一个/您的公司,您应该“感谢”您的前任在遥远的未来工作了许多小时。

PPS:顺便说一句,XP 和 Vista 应该被淘汰。它们现在已经很老了,对于 XP,微软明年将取消已经延长的支持时间,并且只有在 Windows 7 无论如何都不是解决方案的小情况下确实需要它时才应该使用它。

于 2013-04-23T22:57:20.700 回答
1

跑步

cssript.exe ZTIWindowsUpdate.wsf

重新启动后作为管理员,您可以在任务计划程序中创建具有适当权限的任务并在启动时运行。=]

于 2014-11-14T02:47:56.183 回答
1

WuInstall是一种自动化方式。我现在使用它已经 1 年了,它很完美,它实际上做了它应该做的事情。它是一个命令行工具,可以自动搜索、下载和安装更新。有几个“开关”可让您自定义流程。例如,由于重新启动循环开关,更新新设置的 PC 可以轻松完成 - 一次完成。

于 2015-07-29T09:32:59.170 回答
1

这是另一种方式 ------ 执行以下说明,风险自负:要自动更新 Windows,这些说明可能适用于您的系统,也可能不适用,但它似乎在一定程度上适用于 Windows 7,因为这些说明在 Windows 7 上进行了测试.

必读: 1. 如果以下步骤不起作用,请验证您很可能是域的一部分,并且您的安全策略可能不允许您执行以下步骤!2.在Windows更新期间UAC提示也被禁用,因此批处理文件可以不间断地运行;完成后小心将其恢复为默认值

注意此步骤会降低您的计算机的安全性,请在您的计算机完全更新后立即将其删除。如果需要,设置 24 小时后的提醒

1. 首先,您必须确保您的计算机自动登录到用户。您可以通过单击开始菜单,键入“netplwiz”,按回车键或打开向导,在用户选项卡下,选择您的用户名,然后取消选中“需要密码”,输入您的密码,关闭此窗口。

2. 创建 3 个批处理文件以启动自动化过程。(打开记事本将每个代码粘贴到单独的记事本中并执行另存为对应文件名.bat)

一。另存为:any_name.bat 然后将此批处理文件复制到您的启动文件夹中,供您自动登录的用户使用。(点击开始 > 所有程序 > 启动)

start "" c:\autoupdate1.bat
exit    

二。另存为:autoupdate1.bat 然后将其复制到 C:\ 驱动器

wuauclt /detectnow
wuauclt /updatenow
reg query "HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired" > nul && shutdown -r -t 0
start "" c:\autoupdate2.bat
exit

三。另存为:autoupdate2.bat 然后将其复制到 C:\ 驱动器

ping 127.0.0.1 -n 61 > nul
start "" c:\autoupdate1.bat
exit

重新启动或打开启动文件夹中的批处理文件,观看神奇的开始!

3. 完成更新后,只需从启动文件夹和 c:\ 驱动器中删除批处理文件

再次按照这些说明操作,风险自负,因为如果您不知道如何通过从启动文件夹中删除它或在安全模式下进入 Windows 以删除批处理文件来停止此过程,它可能会创建一个无限循环

最后说明:如果您在运行批处理文件时遇到问题,您可能需要查看如何为您的 Windows 版本禁用 UAC 提示

于 2015-10-28T14:36:21.633 回答