PowerShell を使用した Windows アップデートの自動化方法:概要
パッチ管理は、ITインフラ管理において極めて重要な要素であり、まさに Windowsワークステーションのバックアップ適切なパッチ管理ソリューションを導入すれば、最新のソフトウェア更新プログラムやパッチをテストまたはインストールすることで、システムを強化することができます。パッチとは、本格的なソフトウェアのリリース間に行われる、既存の問題に対する一時的な修正策と見なされています。パッチ管理を効果的に実施すれば、システムの脆弱性に迅速に対処し、潜在的な脅威を軽減することができます。
Windowsには、独自のパッチ管理ソリューションである"Windows Update"が搭載されています。しかし、多くのIT管理者は依然として、パッチ管理のプロセスが複雑で時間がかかりすぎると感じています。さらに、システム更新は業務時間中に自動的に開始されることが多いため、本番環境のワークフローに影響を与える可能性があります。PowerShellコマンドレットを使用すれば、Windowsの更新を自動化でき、労力と時間を節約できます。
このブログ記事では、PowerShellを使用してWindowsの更新をインストールする方法について説明し、以下のリストを含んでいます。 便利なPowerShellコマンド パッチ管理プロセスを自動化するためです。パッチを適用することで、システムに影響を及ぼすバグや脆弱性のリスクを軽減できます。
PSWindowsUpdateとは何ですか?
Windowsのパッチ管理プロセスをスムーズかつ簡単に行うために、Michal Gajda氏が開発したPSWindowsUpdateモジュールを利用できます。このモジュールは一般公開されており、以下のサイトから無料でダウンロードできます。 PowerShell Gallery. 主な要件として、コンピュータにはWindows Vista以降、またはWindows Server 2008以降のOSがインストールされている必要があります。また、PowerShell 2.0以降も必要です。
PSWindowsUpdateを使用すると、お使いのコンピュータに適用可能なWindows Updateがあるかどうかを確認できます。さらに、このモジュールを使用することで、さまざまなWindowsサーバーやワークステーションにわたるWindows Updateを一元的に管理できます。これにより、どの更新プログラムをインストール、削除、または非表示にするかをリモートで制御することが可能です。
PowerShell を使用して Windows Update を自動化する方法
以下では、PSWindowsUpdateの設定手順について解説します。これには、モジュールのダウンロードとインストール方法に加え、Windowsの更新を自動化するのに役立つコマンドの確認方法も含まれます。
PSWindowsUpdateのインストール方法
Windowsのパッチ管理を効果的に自動化するには、まずお使いのコンピュータにPSWindowsUpdateモジュールをインストールする必要があります。そのためには、管理者権限でPowerShellを起動し、次のコマンドを入力してください:
Install-Module -Name PSWindowsUpdate
このコマンドを実行すると、PSGalleryから指定されたモジュールをインストールするかどうかを尋ねられます。選択してください Yes すべての変更を適用して続行する場合は、

モジュールのインストールが完了したら、他のコンピュータにリモートアクセスできることを確認してください。これにより、リモートコンピュータに Windows アップデートをインストールできるようになり、時間と労力を最小限に抑えることができます。 PSWindowsUpdate モジュールをリモートマシンで動作させるには、モジュールを自分のコンピュータに保存し、ネットワーク経由で共有する必要があります。
他のサーバーがこのモジュールをインポートして展開できる場合、Windows パッチ管理の自動化を設定できます。そのためには、次のコマンドレットを実行してください:
Save-Module -Name PSWindowsUpdate -Path
ここでは、次のものを定義する必要があります。 –Path PSWindowsUpdate モジュールを保存する場所を指定して、パラメーターを設定します。
PSWindowsUpdate の使い方
次のステップでは、PowerShell コマンドレットを使用して Windows アップデートを自動化するこのモジュールの使い方を学びます。これは、GUI がない Server Core マシンでパッチ管理プロセスを実行する必要がある IT 管理者にとって、大きなメリットとなります。これらのコマンドレットを使用することで、管理の複雑さを最小限に抑え、プロセスをより簡単かつエラーの発生しにくいものにすることができます。
利用可能な Windows アップデートの完全なリストを取得するには、次の PowerShell コマンドを実行してください:
Get-WindowsUpdate
画面には、以下のような出力が表示されるはずです:
この情報があれば、どのソフトウェアやアプリケーションを更新する必要があるのかが確実にわかります。その後、以下のコマンドを入力することで、すべての更新プログラムをインストールできます。さらに、 –AutoReboot パラメータを設定することで、更新プログラムのインストール完了後にシステムが自動的に再起動するよう設定できます。
Get-WUInstall -AcceptAll –AutoReboot
(生産ワークフローを中断しないように)再起動を実行したくない場合は、次のコマンドレットを実行してください:
Get-WUInstall -AcceptAll –IgnoreReboot
画面上では、パッチ管理プロセスの進行状況に加え、アップデートの全リストとその現在のステータスを確認できます。
インストールが完了すると、PowerShell コンソールに次のメッセージが表示されます: "再起動が必要ですが、手動で行ってください"。 したがって、システムの再起動は依然として必要ですが、ご自身のスケジュールに合わせて最適なタイミングで実行することができます。
特定の更新プログラムのみをダウンロードしたい場合は、 –KBArticleID PowerShell コマンドレットのパラメーターとして指定します。適切なパッチをダウンロードするために、KB 記事の番号を指定することを忘れないでください。たとえば、次のようにインストールしたい場合 Windows マルウェア除去ツール (x64) そして Windows Defender アンチウイルスのセキュリティ情報更新. 適切なPowerShellコマンドは、次のように表示されるはずです:
Get-WUInstall -KBArticleID KB890830, KB2267602 –AcceptAll
このコマンドを実行すると、私のコンピュータには、そのアップデートのうち2つだけがインストールされることになります。
PSWindowsUpdate コマンドの概要
PSWindowsUpdate モジュールで利用できる PowerShell コマンドレットがどれか知りたい場合は、次のコマンドを入力して Enter:
Get-Command –module PSWindowsUpdate
ここでは、このモジュールのコマンド一覧をすべて確認できます。

これらのコマンドのいくつかがどのように機能するかを見ていきましょう。
1. 以下の Get-WUHistory このコマンドレットを使用すると、最新の更新履歴を確認できます。このコマンドを実行すると、画面に次のような出力が表示されます。
2. 次のコマンドレットは Get-WUInstallerStatusこれにより、Windows Installer サービスの状態を確認できます。ここでは、インストーラーが正常に動作しているかどうかを確認できます。この操作の結果は、次のようなものになります:
3. を実行することで Get-WURebootStatus このコマンドレットを使用すると、特定の更新プログラムを完全に適用するためにシステムの再起動が必要かどうかを確認できます。
4. 以下の Get-WUServiceManager このコマンドレットを使用すると、Windows アップデートのソースを確認できます。
ご覧のとおり、最後の列には更新プログラムのソース(Windows Update、DCat Flighting Prod など)が表示されています。
5. 特定の更新プログラムをリストから非表示にすることで、その更新プログラムがコンピュータにインストールされるのを防ぐことができます。そのためには、次のコマンドを実行してください。 Hide-WindowsUpdate このコマンドを使用すると、非表示にしたいKB記事のIDを指定できます。以下の例は、リストからKB2267602の更新プログラムを非表示にする方法を示しています:
$HideList = "KB2267602"
Hide-WindowsUpdate -KBArticleID $HideList –Hide
変更を行う前に、選択内容の確認を求められます。入力してください Y KB記事を非表示にする。

ただし、非表示の更新プログラムの一覧を取得したい場合は、以下のコマンドレットを実行してください。
"ステータス"列には、その文字が表示されます H これは、更新が正常に非表示にされたことを示しています。したがって、次回 Get-WUInstall コマンドを実行すると、選択した更新プログラムは利用可能な更新プログラムのリストから自動的に除外されます。
変更を元に戻したい場合は、PowerShell コンソールで次のコマンドレットを使用できます:
Hide-WindowsUpdate -KBArticleID $HideList -Hide:$false
ここでも、変更内容を確認するために、次のように入力するよう求められます Y.

ご覧の通り、この手紙は H 更新ステータスから除外されなくなりました。つまり、このWindows更新プログラムは非表示ではなくなり、お使いのPCにダウンロードできるようになりました。
6. もう1つの設定オプションとして、お使いのPCにインストール済みの更新プログラムを削除する方法があります。この目的には、 Remove-WindowsUpdate cmdlet を実行し、コンピュータからアンインストールしたい KB 記事の ID を入力します。例:
Remove-WindowsUpdate -KBArticleID KB4519573 –IgnoreReboot
~を追加することで –IgnoreReboot パラメータを指定することで、コンピュータが自動的に再起動しないようにできます。更新プログラムのアンインストールが完了したら、後でマシンを再起動してください。
7. 最後に重要な点として、以下のコマンドを使用して、リモートマシンで利用可能な Windows 更新プログラムをスキャンすることができます。 Get-WUList コマンドレット。
Get-WUList –ComputerName Server5
このコマンドレットを機能させるには、リモートコンピュータにも PSWindowsUpdate モジュールをインストールする必要があります。これにより、単一の管理画面から複数のマシンの Windows 更新を自動化できます。PSWindowsUpdate を使用すれば、パッチ管理プロセスをシンプルかつ効率的に実行できます。
さらに、システムへのパッチ適用時に IT 管理者が抱える管理上の負担を軽減することも可能です。
まとめ
PSWindowsUpdateモジュールは、パッチ管理プロセスをよりシンプルかつ効率的にするために開発されました。更新プログラムのインストールを自動化することで、システムが定期的に更新されることを確実にし、システム障害やセキュリティ侵害のリスクを最小限に抑えることができます。 パッチは主に、プログラム内で発見された問題や脆弱性を解決するために開発されます。しかし、定期的なパッチ管理だけでは、本番環境全体を完全に保護することはできません。
そのためには、物理環境、仮想環境、クラウド環境向けのバックアップおよびサイト復旧機能を提供する、包括的なデータ保護ソリューションを利用する必要があります。 NAKIVO Backup & Replicationこれにより、複数のプラットフォームにまたがる最重要のデータやアプリケーションを確実に保護し、いかなる状況下でも復旧を保証するとともに、データ保護コストを削減することができます。




