PowerShellでWindows Updateを行う手順(Windows Server 2025)

2024-11-24Azure,Others,PowerShell/Azure CLI,Virtual Machines,Windows

PowerShellを利用したWindows Update手順です。
PSWindowsUpdateのインストールから、Get-WindowsUpdateを使用したWindows Updateの実行までの手順を紹介しています。
Get-WindowsUpdateを使用したWindows Updateでは、特定のKBのダウンロードのみや、インストールの実行などの方法も紹介しています。
コマンドレットのパラメーターを利用して確認メッセージを自動的に許可したり、Windows Update後にOS再起動させる方法も紹介しています。

スポンサーリンク

PowerShellを利用してWindows Updateを行うための手順

確認に使用した環境(バージョン)

確認に使用したバージョンです。

    • PowerShell : 7.6.2
    • PSWindowsUpdate : 2.2.1.5
    • NuGet : 3.0.0.1

手順の確認には、Azure上に作成した仮想マシンを使用しています。
Windows Server 2025 Datacenter Edition(24H2)を使用しています。

Windows Updateを管理するためのPowerShellモジュールはPSWindowsUpdate

PSWindowsUpdateは、Windows Updateを管理するためのPowerShellモジュールです。
PSWindowsUpdateには、Windows Updateクライアントを管理するためのコマンドレットが含まれています。

PSWindowsUpdate

Install-Moduleコマンドレットを使用して、PSWindowsUpdateモジュールをインストールしています。
必要に応じてNuGetプロバイダーも自動的にインストールされます。

Install-Module
NuGet の概要

# PSWindowsUpdateをインストール
PS C:\> Install-Module -Name PSWindowsUpdate -Force

# PSWindowsUpdateインストール後の確認
PS C:\>
Get-InstalledModule -Name PSWindowsUpdate

Version Name Repository Description
——- —- ———- ———–
2.2.1.5 PSWindowsUpdate PSGallery This module contain cmdlets to manage Windows Update Client.

PS C:\> Get-PackageProvider -ListAvailable -Name NuGet

Name Version DynamicOptions
—- ——- ————–
NuGet 3.0.0.1 Destination, ExcludeVersion, Scope, SkipDependencies, Headers, FilterOnTag, Contains, AllowPrereleaseVersions, ConfigFile, SkipValidate

※NuGetプロバイダーがインストールされていない場合は、Install-PackageProvider -Name NuGetコマンドレットを使用してインストールします。

Get-Commandを使ってPSWindowsUpdateモジュールに含まれるコマンドレットを確認

Get-Commandコマンドレットを利用して、PSWindowsUpdateモジュールに含まれているコマンドレットを確認できます。

Get-Command

Windows Updateに利用する、Get-WindowsUpdateコマンドレットが含まれていることを確認できます。

# PSWindowsUpdateに含まれるコマンドレットを確認
PS C:\> Get-Command -Module PSWindowsUpdate

CommandType Name Version Source
———– —- ——- ——
Alias Clear-WUJob -> Get-WUJob 2.2.1.5 PSWindowsUpdate
Alias Download-WindowsUpdate -> Get-WindowsUpdate 2.2.1.5 PSWindowsUpdate
Alias Get-WUInstall -> Get-WindowsUpdate 2.2.1.5 PSWindowsUpdate
Alias Get-WUList -> Get-WindowsUpdate 2.2.1.5 PSWindowsUpdate
Alias Hide-WindowsUpdate -> Get-WindowsUpdate 2.2.1.5 PSWindowsUpdate
Alias Install-WindowsUpdate -> Get-WindowsUpdate 2.2.1.5 PSWindowsUpdate
Alias Show-WindowsUpdate -> Get-WindowsUpdate 2.2.1.5 PSWindowsUpdate
Alias UnHide-WindowsUpdate -> Get-WindowsUpdate 2.2.1.5 PSWindowsUpdate
Alias Uninstall-WindowsUpdate -> Remove-WindowsUpdate 2.2.1.5 PSWindowsUpdate
Cmdlet Add-WUServiceManager 2.2.1.5 PSWindowsUpdate
Cmdlet Enable-WURemoting 2.2.1.5 PSWindowsUpdate
Cmdlet Get-WindowsUpdate 2.2.1.5 PSWindowsUpdate
Cmdlet Get-WUApiVersion 2.2.1.5 PSWindowsUpdate
Cmdlet Get-WUHistory 2.2.1.5 PSWindowsUpdate
Cmdlet Get-WUInstallerStatus 2.2.1.5 PSWindowsUpdate
Cmdlet Get-WUJob 2.2.1.5 PSWindowsUpdate
Cmdlet Get-WULastResults 2.2.1.5 PSWindowsUpdate
Cmdlet Get-WUOfflineMSU 2.2.1.5 PSWindowsUpdate
Cmdlet Get-WURebootStatus 2.2.1.5 PSWindowsUpdate
Cmdlet Get-WUServiceManager 2.2.1.5 PSWindowsUpdate
Cmdlet Get-WUSettings 2.2.1.5 PSWindowsUpdate
Cmdlet Invoke-WUJob 2.2.1.5 PSWindowsUpdate
Cmdlet Remove-WindowsUpdate 2.2.1.5 PSWindowsUpdate
Cmdlet Remove-WUServiceManager 2.2.1.5 PSWindowsUpdate
Cmdlet Reset-WUComponents 2.2.1.5 PSWindowsUpdate
Cmdlet Set-PSWUSettings 2.2.1.5 PSWindowsUpdate
Cmdlet Set-WUSettings 2.2.1.5 PSWindowsUpdate
Cmdlet Update-WUModule 2.2.1.5 PSWindowsUpdate

Windows UpdateにはGet-WindowsUpdateを使う(パラメーターを確認)

Get-Helpコマンドレットを使用して、Get-WindowsUpdateのヘルプ情報を確認します。
Get-WindowsUpdateコマンドレットには、Install、Download、AcceptAll、AutoRebootなどのパラメーターが含まれていることが分かります。

# Get-WindowsUpdateのヘルプを確認
PS C:\>
Get-Help Get-WindowsUpdate

NAME
Get-WindowsUpdate

SYNOPSIS
Get list of available updates meeting the criteria.

SYNTAX
Get-WindowsUpdate [-AcceptAll <SwitchParameter>] [-AutoReboot <SwitchParameter>] [-AutoSelectOnly <SwitchParameter>] [-AutoSelectOnWebSites <SwitchParameter>] [-BrowseOnly <SwitchParameter>] [-Category <s
tring[]>] [-CategoryIDs <string[]>] [-ComputerName <string[]>] [-Criteria <string>] [-Debuger <SwitchParameter>] [-DeploymentAction <string>] [-Download <SwitchParameter>] [-ForceDownload <SwitchParameter
>] [-ForceInstall <SwitchParameter>] [-Hide <SwitchParameter>] [-IgnoreReboot <SwitchParameter>] [-IgnoreRebootRequired <SwitchParameter>] [-IgnoreUserInput <SwitchParameter>] [-Install <SwitchParameter>]
[-IsAssigned <SwitchParameter>] [-IsHidden <SwitchParameter>] [-IsInstalled <SwitchParameter>] [-IsPresent <SwitchParameter>] [-KBArticleID <string[]>] [-MaxSize <long>] [-MinSize <long>] [-NotCategory <
string[]>] [-NotKBArticleID <string[]>] [-NotSeverity <string[]>] [-NotTitle <string>] [-NotUpdateID <string[]>] [-PSWUSettings <Hashtable>] [-RecurseCycle <int>] [-RevisionNumber <int>] [-RootCategories
<string[]>] [-ScheduleJob <DateTime>] [-ScheduleReboot <DateTime>] [-SendHistory <SwitchParameter>] [-SendReport <SwitchParameter>] [-ServiceID <string>] [-Severity <string[]>] [-ShowPreSearchCriteria <Sw
itchParameter>] [-Title <string>] [-UpdateID <string[]>] [-UpdateType <string>] [-WithHidden <SwitchParameter>] [<CommonParameters>]

~(中略)~

DESCRIPTION
Use Get-WindowsUpdate (aka Get-WUList) cmdlet to get list of available or installed updates meeting specific criteria.
Use Download-WindowsUpdate alias to get list of updates and download it. Equivalent Get-WindowsUpdate -Download.
Use Install-WindowsUpdate (aka Get-WUInstall) alias to get list of updates and install it. Equivalent Get-WindowsUpdate -Install.
Use Hide-WindowsUpdate alias to get list of updates and hide it. Equivalent Get-WindowsUpdate -Hide.
Use Show-WindowsUpdate (aka UnHide-WindowsUpdate) alias to get list of updates and unhide it. Equivalent Get-WindowsUpdate -Hide:$false.

~(以下略)~

Get-WindowsUpdateで適用可能なWindows Updateパッケージ一覧を取得

Get-WindowsUpdateを使用して、適用可能なWindows Updateの一覧を取得できます。

# Get-WindowsUpdateで利用可能なWindows Updateの一覧を取得
PS C:\>
 Get-WindowsUpdate
ComputerName Status KB Size Title
———— —— — —- —–
vm-01 ——- KB2267602 1GB Microsoft Defender Antivirus のセキュリティ インテリジェンス更新プログラム – KB2267602 (バージョン 1.453.70.0) – 現在のチャネル (広範)
vm-01 ——- KB5087051 184MB 2026-05 .NET Framework セキュリティ パッチ (KB5087051)
vm-01 ——- KB5094125 21GB 2026-06 セキュリティ パッチ (KB5094125) (26100.32995)

※Windows Updateの一覧は、記事執筆時点のものです。

Get-WindowsUpdate -InstallでWindows Updateを実行

Get-WindowsUpdateにInstallパラメーターを追加すると、適用可能なWindows Updateをインストールできます。
インストール前には、適用の可否を確認するメッセージが表示されます。
また、OSの再起動が必要な場合は、最後に再起動の確認メッセージが表示されます。
それぞれのデフォルト値は、インストール可否がY(適用)、再起動確認がN(再起動しない)になります。

# Windows Updateを実行(インストールまでを実行)
PS C:\>
Get-WindowsUpdate -Install

Confirm
Are you sure you want to perform this action?
Performing the operation “(2026/06/13 16:29:54) Microsoft Defender Antivirus のセキュリティ インテリジェンス更新プログラム – KB2267602 (バージョン 1.453.70.0) – 現在のチャネル (広範)[1GB]" on target “vm-01".
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is “Y"): Y # 適用します。

Confirm
Are you sure you want to perform this action? ]
Performing the operation “(2026/06/13 16:30:03) 2026-05 .NET Framework セキュリティ パッチ (KB5087051)[184MB]" on target “vm-01".
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is “Y"): Y # 適用します。

Confirm 
Are you sure you want to perform this action?
Performing the operation “(2026/06/13 16:30:11) 2026-06 セキュリティ パッチ (KB5094125) (26100.32995)[21GB]" on target “vm-01".
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is “Y"): N # 別の確認に利用するためNを選択しています。

X ComputerName Result KB Size Title
– ———— —— — —- —–
1 vm-01 Accepted KB2267602 1GB Microsoft Defender Antivirus のセキュリティ インテリジェンス更新プログラム – KB2267602 (バージョン 1.453.70.0) – 現在のチャネル (広範)
1 vm-01 Accepted KB5087051 184MB 2026-05 .NET Framework セキュリティ パッチ (KB5087051)
1 vm-01 Rejected KB5094125 21GB 2026-06 セキュリティ パッチ (KB5094125) (26100.32995)
2 vm-01 Downloaded KB2267602 1GB Microsoft Defender Antivirus のセキュリティ インテリジェンス更新プログラム – KB2267602 (バージョン 1.453.70.0) – 現在のチャネル (広範)
2 vm-01 Downloaded KB5087051 184MB 2026-05 .NET Framework セキュリティ パッチ (KB5087051) 
3 vm-01 Installed KB2267602 1GB Microsoft Defender Antivirus のセキュリティ インテリジェンス更新プログラム – KB2267602 (バージョン 1.453.70.0) – 現在のチャネル (広範)
3 vm-01 Installed KB5087051 184MB 2026-05 .NET Framework セキュリティ パッチ (KB5087051) 
Reboot is required. Do it now? [Y / N] (default is 'N’) Y # OSを再起動します。

※Windows Updateの一覧は、記事執筆時点のものです。

Get-WindowsUpdate -DownloadでWindows Updateパッケージをダウンロード(適用はしない)

Get-WindowsUpdateにDownloadパラメーターを追加すると、Windows Updateパッケージを適用前にダウンロードすることができます。
Windows Updateの適用時にはインストールのみが実行されるため、作業時間を短縮できます。
結果として、Windows Updateの適用開始から終了までの時間を短縮することができます。

# Windows Updateのパッケージをダウンロード
PS C:\>
Get-WindowsUpdate -Download

Confirm
Are you sure you want to perform this action?
Performing the operation “(2026/06/13 18:23:28) 2026-06 セキュリティ パッチ (KB5094125) (26100.32995)[21GB]" on target
“vm-01".
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is “Y"): Y

X ComputerName Result KB Size Title
– ———— —— — —- —–
1 vm-01 Accepted KB5094125 21GB 2026-06 セキュリティ パッチ (KB5094125) (26100.32995)
2 vm-01 Downloaded KB5094125 21GB 2026-06 セキュリティ パッチ (KB5094125) (26100.32995)

# Windows Updateのパッケージダウンロードを確認(StatusがDになっています)
PS C:\>
Get-WindowsUpdate

ComputerName Status KB Size Title
———— —— — —- —–
vm-01 -D—– KB5094125 21GB 2026-06 セキュリティ パッチ (KB5094125) (26100.32995)

※Windows Updateの一覧は、記事執筆時点のものです。

AcceptAllやAutoRebootパラメーターを使って確認メッセージの自動承認やOSの自動再起動

確認メッセージへの応答を省略したい場合は、パラメーターを指定して自動承認できます。
Windows Updateの適用可否を自動的に承認するには、AcceptAllパラメーターを使用します。
再起動を自動的に実行するには、AutoRebootパラメーターを使用します。

パラメーターを利用すると、確認メッセージが表示されなくなります。

# Get-WindowsUpdateを自動承認、自動再起動で実行
PS C:\>
Get-WindowsUpdate -Install -AcceptAll -AutoReboot

X ComputerName Result KB Size Title
– ———— —— — —- —–
1 vm-01 Accepted KB5094125 21GB 2026-06 セキュリティ パッチ (KB5094125) (26100.32995)
2 vm-01 Downloaded KB5094125 21GB 2026-06 セキュリティ パッチ (KB5094125) (26100.32995)
3 vm-01 Installed KB5094125 21GB 2026-06 セキュリティ パッチ (KB5094125) (26100.32995)
# 確認メッセージ表示されることなく、自動でOSが再起動されます。

Windows Updateで特定のKB番号のみダウンロード、インストール

Get-WindowsUpdateは、特定のKB番号を指定することで、そのKBのみをダウンロードおよびインストールすることができます。
KBArticleIDパラメーターを使用して、KB番号を指定します。

# Get-WindowsUpdateで特定のKBに関する情報を取得
PS C:\>
 Get-WindowsUpdate -KBArticleID “KB890830"
ComputerName Status KB Size Title
———— —— — —- —–
vm-01 ——- KB890830 84MB 悪意のあるソフトウェアの削除ツール x64 – v5.142 (KB890830)

# Get-WindowsUpdateで特定のKBに関してのみダウンロード
PS C:\>  Get-WindowsUpdate -KBArticleID “KB890830" -Download

Confirm
Are you sure you want to perform this action?
Performing the operation “(2026/06/13 15:44:55) 悪意のあるソフトウェアの削除ツール x64 – v5.142 (KB890830)[84MB]" on target “vm-01".
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is “Y"): Y

X ComputerName Result KB Size Title
– ———— —— — —- —–
1 vm-01 Accepted KB890830 84MB 悪意のあるソフトウェアの削除ツール x64 – v5.142 (KB890830)
2 vm-01 Downloaded KB890830 84MB 悪意のあるソフトウェアの削除ツール x64 – v5.142 (KB890830)

# Get-WindowsUpdateで特定のKBに関してのみインストール
PS C:\> Get-WindowsUpdate -KBArticleID KB890830 -Install
Confirm
Are you sure you want to perform this action?
Performing the operation “(2026/06/13 15:49:16) 悪意のあるソフトウェアの削除ツール x64 – v5.142 (KB890830)[84MB]" on target “vm-01".
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is “Y"): Y

X ComputerName Result KB Size Title
– ———— —— — —- —–
1 vm-01 Accepted KB890830 84MB 悪意のあるソフトウェアの削除ツール x64 – v5.142 (KB890830)
2 vm-01 Downloaded KB890830 84MB 悪意のあるソフトウェアの削除ツール x64 – v5.142 (KB890830)
3 vm-01 Installed KB890830 84MB 悪意のあるソフトウェアの削除ツール x64 – v5.142 (KB890830)

PS C:\> Get-WindowsUpdate -KBArticleID KB890830
PS C:\> インストール済みなので何も表示されません

—広告—

最後に

今回は、PowerShellを利用したWindows Updateの手順について確認しました。
PSWindowsUpdateモジュールを利用して、PowerShellからWindows Updateを操作できることが分かりました。
PowerShellを使うことでWindows Updateを自動化できるため、複数のサーバーを管理する場合などに便利かと思いました。

引き続き、いろいろ試してみたいと思います。

Windows Server 2025の日本語化手順については、こちらで紹介しています。

Windows Defender ファイアウォールで通信を許可するための手順については、こちらで紹介しています。
PowerShellを利用して規則を構成する手遦についても紹介しています。

スポンサーリンク