台灣時間每月第 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 項更新












Continue Reading