知識は未だ霧の中

スパコン眼鏡NET。HPCのことはあまり書かない。

Wsus Package Publisherを使ってWindows Update経由で他のソフトウェアをアップデートする

当記事の目的

WSUS環境ではWindows Update経由で配布される更新プログラムの管理・制御が可能です。 この機能を使って、他のソフトウェア(例えばAdobe Acrobat ReaderとかVisutal Studio Codeなど)のプログラムのアップデートを管理できたら便利だな、でもWSUSのAPIを自前のソフトウェアでたたくのはさすがに面倒だな。 という社内SE的な人向けの、Wsus Package Publisherというオープンソースソフトウェアを利用して、これを実現する方法の説明を行っていきたいと思います。(要は備忘録です)

前提条件

WSUS環境が存在する。

Wsus Package Publisherについて

WSUSのAPIを利用するソフトウェアは複数あったようですが、最近はWindowsがマイナーな存在になったのか、現在まともにメンテされているのはWsus Package Publisherのみの様です。 Wsus Package Publisherは下記のリポジトリで開発が行われています。 github.com

ちなみに、同名のCodeplexで開発されていたバージョンはGithubのものに統合されたようです。 archive.codeplex.com

インストールおよび利用方法について

自己署名証明書の準備

まず、アップデートパッチの安全性の保証に用いられる、自己署名証明書を作成する必要があります。 最近のWindowsだとPowershellのNew-SelfSignedCertigicateで自己署名証明書を作成することができます。

とりあえずコード署名の自己署名証明書を作成します。 最近のWindowsの機能更新の有効期限を参考に、(とりあえず)1年半を有効期限としておきます。 下の例では、"WSUSCert"という名前で作成していますが、好きな名前を付けてください。

New-SelfSignedCertificate -Type CodeSigningCert -Subject "WSUSCert" `
-KeyAlgorithm RSA -KeyLength 2048 -KeyExportPolicy Exportable `
-NotAfter (Get-Date).AddYears(1).AddMonths(6)

この証明書はコンピューター証明書の管理のPersonal -> Certificatesに登録されています。 作成した証明書を開き、詳細 ->ファイルへコピーからエクスポートしてください。

自己署名証明書の配布

先ほどの証明書をローカルコンピューターの"信頼されたルート証明機関"および”信頼された発行元”にインストールします。 また、レジストリの次のパスにDWORD値のキーを作成し、1を設定します。 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AcceptTrustedPublisherCerts

AD環境でない場合は個別にインストールするよう設定をし、マシンを再起動してください。

WSUS Package Publisherのインストール

Githubに公開されているWSUS Package Publisherのリリースの中から最新のバージョンを選択し、ソフトウェアをダウンロードする。

Releases · DCourtel/Wsus_Package_Publisher · GitHub

解凍したフォルダの"Wsus Package Publisher.exe"を起動する。

f:id:hrontan:20200309013800p:plain

"Tools"の"Certificate..."から証明書の設定を行う。

f:id:hrontan:20200309013828p:plain

Use an existing certificateのPasswordに、先ほど自己署名証明書をエクスポートした際に設定したパスワードを入力し、 "Load a certificate..."から自己署名証明書を選択する。

f:id:hrontan:20200309013845p:plain

そして、一旦WSUSサーバーを再起動する。

アップデートパッケージの作成

"Updates"の"Create an Update..."からパッケージ作成画面を開きます。

f:id:hrontan:20200309013919p:plain

Update Fileからアップデート用のインストーラーを選択し、Nextを選択し、次の画面に進みます。

f:id:hrontan:20200309014004p:plain

Vandor Name、Product Name、Title、Descriptionを入力します。

f:id:hrontan:20200309014035p:plain

なお、ここで作成されたパッケージはサイレント実行されなければならないため、必要であれば、Command Lineにオプションを設定します。

Nextを選択し、次の画面に進みます。

f:id:hrontan:20200309014105p:plain

この画面ではアップデートが既にインストールされているかどうかを判断する条件を入力します。

大半のソフトウェアでは、下記のレジストリの中身に記載されているDisplayVersionの値を参照することで事足りると思われます。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

その場合は、Reg_Sz Registry Keyを選択し、Add Rule...からルールの設定画面を開きます。

f:id:hrontan:20200309014134p:plain

そしてレジストリのパス、キー名、比較方法、値を入力します。

Nextを選択し、次の画面に進みます。

f:id:hrontan:20200309014207p:plain

この画面ではアップデートをインストールしてよいかどうかを判断する条件を入力します。

こちらでは下記に値があるかどうかを条件とします。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

その場合は、Registry Key Existsを選択し、Add Rule...からルールの設定画面を開きます。

f:id:hrontan:20200309014245p:plain

そしてレジストリのパスを入力します。

Nextを選択し、次の画面に進みます。

f:id:hrontan:20200309014258p:plain

この画面では何も入力せずに、Publishを選択し、次の画面に進みます。

Nextを選択し、次の画面に進みます。

パッケージの承認

Updatesから先ほど作成したパッケージを選択し、

f:id:hrontan:20200309014322p:plain

右クリックから"Approve..."を選択し

f:id:hrontan:20200309014337p:plain

対象のコンピューターグループに対して承認を行います。

f:id:hrontan:20200309014458p:plain

以上で作業は終了です。お疲れ様でした。

追記

下記のソフトウェアのパッケージの設定を記載しておきます。

7-Zip

  • 対象ファイル: {対象のインストーラー}
    • オプション: /S
  • アップデート済み判定条件: Reg_Sz Registry Key
    • Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\7-Zip
    • DisplayVersion
    • Equal To
    • {アップデート後のバージョン}
  • インストール判定条件: Registry Key Exists

Visual Studio Code

  • 対象ファイル: {対象のインストーラー}
    • オプション: /VERYSILENT /MERGETASKS=!runcode
  • アップデート済み判定条件

  • インストール判定条件

※システム―インストール時のみ

Google Chrome

  • アップデート済み判定条件
  • インストール判定条件

Mozilla Firefox

  • アップデート済み判定条件
  • インストール判定条件

Adobe Acrobat Reader

  • 対象ファイル: AcroRdrDCUpd1801120038.msp
    • オプション: /quiet /norestart
  • アップデート済み判定条件: File Version
    • C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe *1
    • Equal To
    • {アップデート後のバージョン}
  • インストール判定条件: File Version
    • C:\Program Files (x86)\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe *2
    • Less Than
    • {アップデート後のバージョン}

Microsoft Office 2019

  • アップデート済み判定条件
  • インストール判定条件: Registry Key Exists

*1:インストールしているパス

*2:インストールしているパス