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

Azure,Others,PowerShell/Azure CLI,Virtual Machine,Windows

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

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

スポンサーリンク

事前準備としてPSWindowsUpdateやNuGetをインストール

Install-ModuleでPSWindowsUpdateをインストール

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

PSWindowsUpdate

Install-Moduleコマンドレットで、PSWindowsUpdateをインストールします。

Install-Module

同時にNuGetもインストールされます。

NuGet の概要

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

NuGet provider is required to continue
PowerShellGet requires NuGet provider version '2.8.5.201’ or newer to interact with NuGet-based repositories. The NuGet
 provider must be available in 'C:\Program Files\PackageManagement\ProviderAssemblies’ or
'C:\Users\User名\AppData\Local\PackageManagement\ProviderAssemblies’. You can also install the NuGet provider by
running 'Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force’. Do you want PowerShellGet to install
and import the NuGet provider now?
[Y] Yes  [N] No  [S] Suspend  [?] Help (default is “Y"):Y

# 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.

確認メッセージを表示せずにPSWindowsUpdateをインストール

Install-Module実行時にForceのパラメーターを付与しても、NuGetインストールの確認メッセージが表示されます。
NuGet、PSWindowsUpdateの順にインストールすると確認メッセージを表示せずにインストールする事ができます。

# NuGetをインストール
PS C:\> Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force

Name                           Version          Source           Summary
—-                           ——-          ——           ——-
nuget                          2.8.5.208        https://onege… NuGet provider for the OneGet meta-package manager

# 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.

※NuGetをインストール時に確認メッセージが表示される場合は、MinimumVersionのパラメータを付与すると良いようです。

—広告—

PowerShellを使ったWindows Update実行手順

Get-Help使ってPSWindowsUpdateを確認

Get-Helpコマンドレットを使って、ヘルプ情報を表示できます。
PSWindowsUpdateに、Get-WindowsUpdateコマンドレットが含まれている事が確認できます。

Get-Help

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

Name Category Module Synopsis
—- ——– —— ——–
Enable-WURemoting Cmdlet PSWindowsUpdate Enable firewall rules for PSWindowsUpdate remoting.
Get-WindowsUpdate Cmdlet PSWindowsUpdate Get list of available updates meeting the criteria.
Get-WUApiVersion Cmdlet PSWindowsUpdate Get Windows Update Agent version.
Get-WUJob Cmdlet PSWindowsUpdate Get invoked WUJob.
Invoke-WUJob Cmdlet PSWindowsUpdate Invoke WUJobs by Task Schduler.
Set-PSWUSettings Cmdlet PSWindowsUpdate Save PSWUSettings.
Update-WUModule Cmdlet PSWindowsUpdate Update PSWindowsUpdate module.

Get-Help使ってGet-WindowsUpdateのヘルプを確認

Get-Helpコマンドレットを使って、Get-WindowsUpdateのヘルプ情報を確認します。
Install、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
<string[]>] [-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 <SwitchParameter>] [-Title <string>] [-UpdateID
<string[]>] [-UpdateType <string>] [-WithHidden <SwitchParameter>] [<CommonParameters>]

Get-WindowsUpdateで利用可能なWindows Updateの一覧を取得

Get-WindowsUpdateで利用可能なWindows Updateの一覧を取得できます。

# Get-WindowsUpdateで利用可能なWindows Updateの一覧を取得
PS C:\>
Get-WindowsUpdate

ComputerName Status KB Size Title
———— —— — —- —–
test-vm-01 ——- KB890830 73MB Windows Malicious Software Removal Tool x64 – v5.130 (KB890830)
test-vm-01 ——- KB2267602 1GB Security Intelligence Update for Microsoft Defender Antivirus – KB2267602 (Version 1.421.332.0) – Current Channel (Broad)
test-vm-01 ——- KB5045934 142MB 2024-11 Cumulative Update for .NET Framework 3.5 and 4.8.1 for Microsoft server operating system version 24H2 for x64 (KB5045934)

※Windows Updateの一覧は記事記載時点のものです。

Get-WindowsUpdate -InstallでWindows Updateを実行

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

# Get-WindowsUpdate -InstallでWindows Updateを実行
PS C:\>
Get-WindowsUpdate -Install

Confirm
Are you sure you want to perform this action?
Performing the operation “(11/17/2024 5:17:23 AM) Windows Malicious Software Removal Tool x64 – v5.130 (KB890830)[73MB]" on target “test-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 “(11/17/2024 5:17:29 AM) Security Intelligence Update for Microsoft Defender Antivirus – KB2267602 (Version 1.421.332.0) – Current Channel (Broad)[1GB]" on target “test-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 “(11/17/2024 5:17:31 AM) 2024-11 Cumulative Update for .NET Framework 3.5 and 4.8.1 for Microsoft server operating system version 24H2 for x64 (KB5045934)[142MB]" on target
“test-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 test-vm-01 Accepted KB4052623 13MB Update for Microsoft Defender Antivirus antimalware platform – KB4052623 (Version 4.18.24090.11) – Current Channel (Broad)
1 test-vm-01 Accepted KB890830 73MB Windows Malicious Software Removal Tool x64 – v5.130 (KB890830)
1 test-vm-01 Accepted KB5045934 142MB 2024-11 Cumulative Update for .NET Framework 3.5 and 4.8.1 for Microsoft server operating system version 24H2 for x64 (KB5045934)
2 test-vm-01 Downloaded KB4052623 13MB Update for Microsoft Defender Antivirus antimalware platform – KB4052623 (Version 4.18.24090.11) – Current Channel (Broad)
2 test-vm-01 Downloaded KB890830 73MB Windows Malicious Software Removal Tool x64 – v5.130 (KB890830)
2 test-vm-01 Downloaded KB5045934 142MB 2024-11 Cumulative Update for .NET Framework 3.5 and 4.8.1 for Microsoft server operating system version 24H2 for x64 (KB5045934)
3 test-vm-01 Installed KB4052623 13MB Update for Microsoft Defender Antivirus antimalware platform – KB4052623 (Version 4.18.24090.11) – Current Channel (Broad)
3 test-vm-01 Installed KB890830 73MB Windows Malicious Software Removal Tool x64 – v5.130 (KB890830)
3 test-vm-01 Installed KB5045934 142MB 2024-11 Cumulative Update for .NET Framework 3.5 and 4.8.1 for Microsoft server operating system version 24H2 for x64 (KB5045934)
Reboot is required. Do it now? [Y / N] (default is 'N’)
Y

※Windows Updateの一覧は記事記載時点のものです。

AcceptAllやAutoRebootを使って確認メッセージの承認やOS再起動も同時に実行

確認メッセージを確認する必要が無い場合は、パラメーターを使って自動承認させる事ができます。
Windows Updateの適用可否は、AcceptAllを使用します。
再起動の確認は、AutoRebootを使用します。

# Get-WindowsUpdateをInstall、AcceptAll、AutoRebootをつけて実行
PS C:\>
Get-WindowsUpdate -Install -AcceptAll -AutoReboot

—広告—

最後に

PowerShellを利用したWindows Update手順について確認してみました。
PowerShellを使う事でWindows Updateを自動化できるので便利かと思いました。

引き続き色々試してみたいと思います。

スポンサーリンク