Woman typing on a laptop
Windows Updateの手動操作に煩わしさを感じたことはありませんか?
特に複数台のPCやサーバーを管理している場合、更新作業は思った以上に時間を取られます。
そこで活用したいのが、PowerShellスクリプトによるWindows Updateの自動管理です。
本記事では、Windows PowerShellを使って、更新の確認・インストール・再起動の制御まで一連の流れを自動化する方法をわかりやすく解説します。
業務効率化や管理の一元化を目指す方にとって、実践的な内容になっています。
Windowsには標準で自動更新機能がありますが、細かい制御や一括管理には不向きです。
PowerShellを使えば、更新の取得から適用までをコマンドベースで柔軟に制御できます。
Windows UpdateをPowerShellで扱うには、次の2つの方法があります。
Windows Update Module
(PSWindowsUpdate
モジュール)を利用する実務で多用されるのは、PSWindowsUpdate
モジュールです。
以下から、モジュールのインストール方法と使い方について詳しく見ていきましょう。
まず最初に、PowerShellでWindows Updateを制御するためのモジュールをインストールします。
Install-Module -Name PSWindowsUpdate -Force
Y
を入力。モジュールのインストールができたら、まずは更新プログラムの確認から行います。
Get-WindowsUpdate
このコマンドを実行すると、現在のシステムにインストールされていない更新プログラムの一覧が表示されます。
-MicrosoftUpdate
:Microsoft Update(Officeなど)を含めてチェック-Category SecurityUpdates
:セキュリティ更新のみに絞る確認した更新プログラムをインストールするには、以下のようにします。
Install-WindowsUpdate -AcceptAll -AutoReboot
-AcceptAll
:すべての更新を自動で承諾-IgnoreReboot
:インストール後に再起動しない-AutoReboot
:必要であれば自動で再起動インストール対象から特定のKB番号を除外したい場合は以下のように記述します。
Get-WindowsUpdate | Where-Object {$_.KB -notmatch "KB5006670"} | Install-WindowsUpdate -AcceptAll -AutoReboot
過去に適用されたWindows Updateの履歴を確認することも可能です。
Get-WUHistory
このコマンドは、成功/失敗に関わらずすべての履歴を一覧表示してくれます。
PowerShellスクリプトを定期実行するには「タスクスケジューラ」との組み合わせが便利です。
UpdateScript.ps1
)を保存Program/script: powershell.exe
Add arguments: -ExecutionPolicy Bypass -File "C:\Scripts\UpdateScript.ps1"
以下は、一般的な更新処理を行うPowerShellスクリプトの例です。
# Windows Update スクリプト
Import-Module PSWindowsUpdate
# Microsoft Updateも含めて確認
Get-WindowsUpdate -MicrosoftUpdate
# すべてインストールして再起動
Install-WindowsUpdate -AcceptAll -AutoReboot
Install-WindowsUpdate -AcceptAll -AutoReboot | Out-File "C:\Logs\update_log_$(Get-Date -Format yyyyMMdd).txt"
PowerShellを活用することで、Windows Updateの手動作業を効率的に自動化できます。
特に複数台の管理を行う管理者にとっては、作業時間の大幅な削減とトラブル対応の迅速化が期待できます。
今回紹介したPSWindowsUpdate
モジュールは、無料で使える非常にパワフルなツールです。
ぜひスクリプトをカスタマイズし、自社環境や家庭のPC管理にも活用してみてください。