自动化PSWindowsUpdates遇到麻烦

时间:2019-12-19 14:21:33

标签: windows windows-update

因此,我一直在努力使用PSWindowsUpdate模块进行有效的设置。我要执行的操作的快速摘要是,列出了要修补的服务器列表,并通过我的installer命令运行它,然后触发Task Scheduler任务运行PSWindowsUpdate install命令。安装完成后,将向我发送一封电子邮件通知,以便我知道何时可以重新启动,这是不起作用的部分。

现在,当我完成此过程并且有一些小更新(如“定义”更新)时,它的效果很好。一切都会运行并安装,我也收到了电子邮件。当我进行大型的累积更新时,会发生问题,该任务将启动并安装更新,但是它从未将输出发送到日志文件,也从未发送过电子邮件,因此它挂在该过程中的某个位置。我希望找出原因,为什么要挂起来,或者我能做些什么来监视幕后发生的事情。

以下是我正在使用的步骤和脚本:

首先,我运行此功能以开始工作。它接受“ @c:\ list.txt”或“ \ SERVER”形式的列表:

function Install-PSWindowsUpdate {
[CmdletBinding()]
param (
    [string]$ComputerName
)

PsExec.exe $ComputerName -s powershell.exe -c Start-ScheduledTask -taskname WindowsUpdateInstall
}

然后,这启动了运行包含以下内容的简单.bat文件的计划任务:

powershell "& ""C:\pswindowsupdate-install.ps1"""

运行以下PS脚本:

Start-Transcript -path "c:\script.log" -append

Get-WUInstall -AcceptAll -Install -Verbose | Format-Table -AutoSize | Out-String -Width 4096 | Out-File 
c:\PSWinodwsupdate.log -Force

start-sleep -seconds 10

$body = Get-Content -Path C:\PSWinodwsupdate.log -Raw
Send-MailMessage -To <email address> -from <email address> -Subject "Updates Complete for $Env:Computername" -Body $body -SmtpServer <server>

Stop-Transcript

我首先尝试直接在Task Scheduler中运行PS脚本,但是根据我的经验和在线阅读的内容,Windows很烂地从TS中运行PS脚本。所有这一切中最令人沮丧的部分是,有时它可以与较小的更新一起使用,或者像上个月一样,我通过卸载并运行该过程对单个服务器进行了广泛的测试,而该过程实际上是可行的。我以为.bat文件会有所作为,但是这个月我们又回来了,第一次运行没有任何效果。

我在想我的PS脚本可能需要某种等待过程或更多逻辑,但是我的脚本编写能力有限。我希望外面有人可以帮助我朝正确的方向前进。

谢谢! 史蒂夫

0 个答案:

没有答案