企業などでは、Windowsマシンの更新を管理する場合、WSUS、Windows Intune、SCCMなどのMicrosoft製のツールを利用して集中管理するのが一般的ですが、ツールを利用するほど台数が多くない場合は、更新処理をスクリプト化してみてはいかがでしょうか。
更新処理をスクリプト化して、更新結果をテキストファイルでファイルサーバーなどに保存するようにしておけば、一台ずつ画面を開いて更新結果を確認する手間を削減することができます。
そこでここでは、PowerShellコマンドレットやWindowsコマンドで更新プログラムのチェックやインストールを実行する方法を紹介します。
目次
PowerShellの場合
PowerShellで、Windows Updateの更新プログラムのチェックやインストールを行いたい場合の手順は、以下のとおりです。
以降で紹介しているコマンドは、すべて管理者としてPowerShellを起動して実行します。
まず、事前準備として以下のコマンドを順に実行して、必要なモジュールをインストールして実行できるよう設定します。
PS> Set-ExecutionPolicy RemoteSigned -Force
PS> Install-Module PSWindowsUpdate -Force
PS> Import-Module PSWindowsUpdate -Force
必要な更新プログラムの有無のチェックだけ行いたいときは、以下のコマンドを実行します。
PS> Get-WindowsUpdate
必要な更新プログラムをダウンロードまで行いたいときは、以下のコマンドを実行します。
PS> Download-WindowsUpdate
必要な更新プログラムのインストールまで行いたいときは、以下のコマンドを実行します。
PS> Install-WindowsUpdate -AcceptAll
なお、更新プログラムのインストール後に再起動が必要な場合は、以下のように再起動するかの質問が表示されます。
更新プログラムのインストール後に自動的に再起動させたいときは、以下のようにコマンドを実行します。
PS> Install-WindowsUpdate -AcceptAll -AutoReboot
更新プログラムのインストール後に自動的にシャットダウンさせたいときは、シャットダウンコマンドと組み合わせてコマンドを実行するとよいでしょう。
PS> Install-WindowsUpdate -AcceptAll;Stop-Computer -Force
更新プログラムの適用履歴を確認したいときは、以下のコマンドを実行します。
PS> Get-WUHistory
Windowsコマンドの場合
Windowsコマンドで、Windows Updateの更新プログラムのチェックやインストールを行う方法としては「UsoClient.exe」を使った方法がありますが、UsoClientでは、画面上に実行状況などがほとんど表示されないため、個人的には上に紹介したPowerShellコマンドレットを使った方法をおすすめします。
参考までに、UsoClientを使った方法を紹介しておきます。
以降で紹介しているコマンドは、すべて管理者としてコマンドプロンプトを起動して実行します。
必要な更新プログラムの有無のチェックだけを行いたいときは、以下のコマンドを実行します。
C:¥> UsoClient StartScan
必要な更新プログラムのダウンロードまでを行いたいときは、以下のコマンドを実行します。
C:¥> UsoClient ScanInstallWait
更新プログラムをインストールするときは、以下のコマンドを実行します。
C:¥> UsoClient StartInstall
あとがき
なお、ここでは基本的なコマンドの紹介のみでしたが、PowerShellモジュール「PSWindowsUpdate」には、重要な更新のみを適用するなどのオプションも用意されているので、より詳しい使い方を知りたい方は、以下のコマンドでヘルプを確認してみるとよいでしょう。
PS> Get-Help Get-WindowsUpdate -detailed