WSUS を使用してサードパーティのソフトウェア更新プログラムを展開する方法

サードパーティ製アプリのアップデートをプッシュ配信するためにWSUS(Windows Server Update Services)を設定するのは、必ずしも簡単ではありません。通常、WSUSはWindowsやOfficeといったMicrosoft製品に特化しています。しかし、7-Zip、Adobe Reader、さらにはChromeのアップデートまで一元管理できるようになるとしたら?これは画期的なことです。問題は、WSUSがサードパーティ製ソフトウェアのアップデートをネイティブでサポートしていないことです。そのため、アップデートをプッシュ配信したり、Javaや特定のドライバーなどをインストールしたりするには、少し手間がかかります。そこでWSUS Package Publisherのようなツールが登場します。これはオープンソースで、サードパーティ製のアップデートパッケージを標準のWSUSアップデートと同じように作成、公開、追跡できます。

このプロセスは、特にWSUS経由でMicrosoft以外の製品を展開した経験がない場合は、最初は少し難しそうに感じるかもしれません。しかし、一度設定してしまえば、自動化なども含めて非常に便利です。必要なものは以下のとおりです。WSUS、.NET Framework(バージョン3.5以降)、そしてクライアントがWSUSサーバーを参照するように構成されたGPOです。次に、パッケージ発行ツールを使用してカスタムパッケージに署名し、公開、承認を行い、あとはWSUSに任せます。そしてもちろん、クライアントマシンが署名された更新プログラムを問題なく受け入れられるように、自己署名証明書を信頼するように準備しておく必要があります。直感的ではありませんが、一度慣れてしまえば、サードパーティ製アプリの管理が手動でインストールするよりもはるかに簡単になります。

WSUS パッケージ パブリッシャーのインストールと構成方法

WSUS パッケージ パブリッシャーの利点

  • WSUS 統合: すべてを 1 つの屋根の下に保管し、個別の展開ツールを操作する必要はありません。
  • MSI、MSP ファイル、または EXE ファイル (MSI Wrapper などのツールを使用して変換する場合) から更新パッケージを作成できます。
  • インストールステータスを追跡し、ソフトウェアが正常にプッシュされたかどうかを確認します。

WSUS 更新サーバーが既に稼働しており、クライアントが (GPO 経由で) 正しく指定され、.NET Framework が使用できる状態であれば、あと数ステップでサードパーティの更新プログラムをプッシュできます。

  1. まず、WSUS Package Publisher のバイナリアーカイブを入手します。WSUS サーバー上の任意の場所(たとえば 内)に解凍しますC:\WSUSPublisher。特別なインストールは不要です。解凍して を実行するだけですWsusPackagePublisher.exe
  2. 次に、 をダブルクリックしてツールを起動しますWsusPackagePublisher.exe。署名されていないコードの実行に関する警告が表示される場合がありますので、必要に応じて許可してください。ローカルのWSUSサーバーに接続します。通常は自動検出されますが、必要に応じて手動で設定することもできます。
  3. アプリを初めて起動すると、署名証明書の生成を求められます。これは非常に重要です。アップデートはクライアントの信頼を得るために署名される必要があるからです。「ツール」「証明書」に進みます。内部PKIがある場合はそれを使用し、ない場合はアプリが自己署名コード署名証明書を生成できます(PowerShellでも を使用すれば可能です)。証明書を.CERNew-SelfSignedCertificateファイルとして保存します。
  4. これらの更新を受け取るすべてのクライアントPCに証明書をインストールしてください。最も簡単な方法はグループポリシーを使用する方法です。gpmc.msc を開き GPOを見つけて、「コンピューターの構成」→「ポリシー」→「Windowsの設定」→「セキュリティの設定」→「公開キーのポリシー」に移動します。 「信頼されたルート証明機関」を右クリックして証明書をインポートします。また、信頼の問題を防ぐため、 「信頼された発行元」についても同様の手順を実行してください。
  5. クライアントがWSUSからの署名付きコンテンツを受け入れるようにするには、「コンピューターの構成」→「ポリシー」→「管理用テンプレート」→「Windowsコンポーネント」→「Windows Update」に移動します。「イントラネットのMicrosoft更新サービスの場所からの署名付きコンテンツを許可する」を有効にします。ワークグループ/非ドメインマシンの場合は、レジストリの調整(などreg add HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate /f /v AcceptTrustedPublisherCerts /t REG_DWORD /d 1)を追加する必要がある場合がありますが、これは後で説明します。

WSUS 経由で展開するカスタムのサードパーティ更新パッケージを作成する

プッシュ可能なサードパーティアップデートを作成する方法

ドメインコンピュータ上の古いバージョンの7-Zipを更新したいとします。まず、公式サイトから最新のMSIインストーラーをダウンロードします。ダウンロードしたら、WSUS Package Publisher内でそのパスを指定します。EXE形式のインストーラーをお持ちの場合は問題ありません。MSIラッパー(MSI Wrapperなど)を使用すると、WSUSと互換性のあるMSIパッケージに変換できます。

  1. パブリッシャーで、「アップデート」「新しいアップデートを作成」をクリックします。アップデートに名前を付け(「7-Zip v23.01」など)、後でわかるように説明を追加します。
  2. MSIまたはEXEインストーラーへのパスを指定します。MSIファイルの場合は、ダウンロードしたファイルを指定するだけです。EXEファイルの場合は、事前にMSIファイルに変換するか、ラップする必要がある場合があります。
  3. インストール条件を設定します。例えば、が23.01HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\7-Zipあるかどうかを確認します。これにより、正しいバージョンがまだ存在しない場合にのみアップデートがインストールされます。DisplayVersion
  4. ソフトウェアがインストールされているかどうか(レジストリキー、ファイル、バージョン番号など)を検出するルールを作成します。テストマシンでは、次のような簡単なレジストリクエリを実行できます。
  5. <bar:RegSz Key="HKEY_LOCAL_MACHINE" Subkey="SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\7-Zip" Value="DisplayVersion" Comparison="EqualTo" Data="23.01"/>

    同様に、アーキテクチャが一致していることを確認します ( <bar:Processor Architecture="9"/>x64 の場合)。

  6. インストールするかどうかのロジックを設定します。ソフトウェアがまだインストールされていない場合にのみ展開したい場合は、逆ルールが便利です。基本的には、レジストリに適切なバージョンがない場合にWSUSにインストールするように指示します。
  7. パッケージを公開して完了です。これでデプロイの準備が整いました!

重要:これらのサードパーティ製パッケージは通常のWSUSコンソールには表示されないため、パッケージ発行者インターフェースから管理する必要があります。展開するには、パッケージを選択し、対象のグループに対して承認してください。

  1. WSUS でターゲット グループを選択し、右クリックして、[承認][インストールの承認]を選択します。
  2. クライアントマシンでアップデートを手動でチェックします(wuauclt /detectnowまたはスケジュールされたタスクなど)。ポリシーが適用されると同時に、デバイスはバックグラウンドでダウンロードとインストールを実行します。
  3. Get-WindowsUpdateクライアント PC でソフトウェアが正しくインストールされているかどうかを確認します。アプリケーション フォルダーを簡単に確認するだけでも確認できます。

展開状況の監視は簡単です。WSUSパッケージ パブリッシャーの「レポート」タブを使用して、どのデバイスに更新プログラムが正常にインストールされたかを確認できます。このフィードバック ループは、複数のアプリや更新プログラムを展開する場合に非常に便利です。

結局のところ、WSUSとPackage Publisherを使ってサードパーティ製アプリをプッシュするのは、ボタンをクリックするほど簡単ではありませんが、手動で更新したり、スクリプトを使って一回限りのインストールを行うよりははるかに優れています。これは、Windows側が必要以上に難しくする必要があるため、いわばハック的な回避策ですが、それでもうまく機能します。

まとめ

  • WSUS パッケージ パブリッシャーをインストールし、署名証明書を生成します。
  • 証明書を使用してカスタム更新パッケージに署名し、証明書をクライアント PC に展開します。
  • MSI/EXE ファイルを使用して更新パッケージを作成し、検出ルールを設定して公開します。
  • WSUS を通じて展開を承認および監視します。

まとめ

WSUS経由でサードパーティのアップデートを取得するのはプラグアンドプレイではありませんが、一度使いこなせれば、面倒な手続きを踏むことなくほとんどのソフトウェアにパッチを適用できる確実な方法です。ただし、環境によっては証明書の信頼度や検出ルールなどを調整する必要がある場合があることにご注意ください。とはいえ、大規模なソフトウェア管理においては、この方法は妥当な妥協策と言えるでしょう。この方法が誰かの時間を節約し、手間を省くのに役立つことを願っています。