PSWindowsUpdate,使用 PowerShell 完成 Windows Updates
台灣時間每月第 3 週星期五,同事大約從 09:00 開始,分別遠端登入公司所有主機進行 Windows Update,共有 9 台
- 測試機 x 4
- 正式機 x 5
尤其是正式機,必須在台灣時間 14:00 之前完成並重新開機,才不會影響現場運作,也就是在上午時段,同事除了要完成工作進度,同時得處理、觀察 Windows Update 進度
本文會透過 PSWindowsUpdate 搭配 Task Schedule,進行 Windows Update 並發出 Slack 通知,在完成更新後自動重開機
準備工作:
(1) 以 Administrator 開啟 PowerShell 命令視窗,安裝 PSWindowsUpdate
Install-Module PSWindowsUpdate
(2) 建立 PowerShell 腳本
- PSWindowsUpdate_InstallAll.ps1
Get-WindowsUpdate -AcceptAll -Install -AutoReboot
- PSWindowsUpdate_NotifyToSlack.ps1
$uriSlack = "https://hooks.slack.com/services/{guid}"
$body = ConvertTo-Json @{
text = (Get-Date).ToString("MM/dd") + " Windows Update - " + $env:computername
color = "#142954"
}
try {
Invoke-RestMethod -uri $uriSlack -Method Post -body $body -ContentType 'application/json' | Out-Null
} catch {
Write-Error ((Get-Date).ToString("MM/dd") + ": Windows Update to Slack went wrong...")
}
(3) 開啟 Task Schedule,建立工作排程
到這裡已完成準備工作,接著啟動排程。此次 PSWindowsUpdate 預計安裝 2 項更新,執行後會重新開機
再來驗證資料。Slack 有收到 Windows Update 通知,主機也新增 2 項更新