Windows10でWindowsUpdateをPowerShellから実行する方法

企業などでは、Windows10マシンの更新を管理する場合、WSUS、Windows Intune、SCCMなどのMicrosoft製のツールを利用して集中管理するのが一般的ですが、ツールを利用するほど台数が多くない場合は、更新処理をスクリプト化してみてはいかがでしょうか。

更新処理をスクリプト化して、更新結果をテキストファイルでファイルサーバーなどに保存するようにしておけば、一台ずつ画面を開いて確認する手間を削減することができます。

更新処理をスクリプト化する場合、ほぼすべてのWindowsで利用が可能な「Windows Update Agent API」を利用してスクリプト化するのが一般的ですが、ここでは、Windows10バージョン1709以降で利用が可能になったWindows PowerShell用の「WindowsUpdateProvider」モジュールを利用して、Windows10の更新処理をスクリプト化する方法を紹介します。

動作環境

この記事は、以下の環境で実行した結果を基にしています。他のエディションやバージョンでは、動作結果が異なる場合があることをご了承ください。

ソフトウェア バージョン
Windows10 Pro 64bit 1809

「WindowsUpdateProvider」モジュール

Windows10バージョン1709以降には、Windows PowerShell用の「WindowsUpdateProvider」モジュールが搭載されており、コマンドからのWindowsUpdateが、これまでに比べてカンタンに実行できるようになっています。

使えるコマンドレットは次のとおりです。

PS C:\> Get-Command -Module WindowsUpdateProvider

CommandType     Name                           Version    Source
-----------     ----                           -------    ------
Function        Get-WUAVersion                 1.0.0.2    WindowsUpdateProvider
Function        Get-WUIsPendingReboot          1.0.0.2    WindowsUpdateProvider
Function        Get-WULastInstallationDate     1.0.0.2    WindowsUpdateProvider
Function        Get-WULastScanSuccessDate      1.0.0.2    WindowsUpdateProvider
Function        Install-WUUpdates              1.0.0.2    WindowsUpdateProvider
Function        Start-WUScan                   1.0.0.2    WindowsUpdateProvider

Get-WUAVersion - WindowsUpdateエージェントのバージョンが返されます。

Get-WUIsPendingReboot - 更新プログラムの適用に再起動が必要な場合は「True」、ない場合は「False」が返されます。

Get-WULastInstallationDate - 最後に更新プログラムのインストールに成功した日時が返されます。

Get-WULastScanSuccessDate - 最後に更新プログラムの有無をチェックした日時が返されます。

Start-WUScan - 利用可能な更新プログラムがあれば、一覧が返されます。

Install-WUUpdates - 利用可能な更新プログラムのダウンロードとインストールを実行します。

更新用スクリプト例

上のコマンドレットを使って、更新プログラムをインストールする簡単なスクリプトは次のような感じです。

$updates = Start-WUScan
if ($updates.Count -gt 0) {Install-WUUpdates -Updates $updates} else {Write-Host "利用可能な更新プログラムはありません。"}
if (Get-WUIsPendingReboot) {Write-Host "更新を完了するには再起動が必要です。"}

上のスクリプトは、次のような処理の流れになります。

  1. 利用可能な更新プログラムを確認
  2. 更新プログラムがあればダウンロードとインストール
  3. 再起動が必要であれば画面に通知

あとがき

「WindowsUpdateProvider」モジュールは、Windowsの更新を簡単にしてくれる便利なモジュールではありますが、次のような状況もあるため、常用するにはもう少し待ったほうが良いと思います。

  • ヘルプファイルが整備されていない
  • ネットの情報がすくない
  • 不明なエラーが出ることがあり、原因がわからない

もう少し完成度が高くなるまでは、Windows Update Agent APIを使用するほうが良いかもしれません。

トップへ戻る