【发布时间】:2017-09-01 14:27:58
【问题描述】:
我希望自动执行在我的 VM 上安装 WSUS 更新的过程。简要概述一下,以下是我想要完成的事情(如果我的方法很愚蠢,请告诉我,我很想学习所有这些的正确方法。):
- 检查特定 VM 是否有要安装的任何 WSUS 更新
- 如果有可用更新,请拍摄 VM 快照
- 开始 WSUS 安装
- 必要时重启系统
我目前能够检查特定 VM 是否有更新并拍摄快照。现在我知道我可以让这部分脚本运行并配置一个 GPO 来完成其余的任务,但我的想法是,如果我可以在脚本中完成这一切,我将能够检查快照的 VM 在安装更新之前存在。您可以在下面看到我的脚本到目前为止的作用。
foreach ($vm in $vms) {
if ($vm.PowerState -eq "poweredOn") {
$output = Invoke-VMScript -ScriptText $script -VM $vm -GuestCredential $guestCred
if ($output.ScriptOutput -Notlike '0*') {
New-Snapshot -VM $vm -Name BeforeWSUS
}
}
}
在此之后,我想检查是否存在 vm 的快照,然后安装 WSUS 更新。如果需要重新启动,则重新启动。
有没有办法做到这一点?更好的方法来做到这一点?真的很感激一些见解,我是 Powershell 的新手。
编辑:我已经检查了 PSWindowsUpdate 模块,是否需要在我计划更新的每个 VM 上都有它?
【问题讨论】:
-
你是怎么得到
$vms的列表的? -
@TheIncorrigible1 我没有在脚本中包含该部分,$vms 是通过文本文件填充的。这就是此时需要填充 $vms 的方式。
标签: powershell powercli