[SCCM 管理者必見!] System Center 2012 Configuration Manager での更新プログラム管理に役立つホワイト ペーパーについて

こんにちは。System Center サポート担当の本田です。

System Center 2012 Configuration Manager は、インベントリ収集やアプリケーションの配布、OS 展開など企業の資産管理に役立つ様々な機能をもっておりますが、更新プログラムの管理にご利用いただいているお客様も多いかと思います。
Configuration Manager では更新プログラムの管理を行う上で、内部的には Windows Server Update Services (WSUS) を使用していますが、Configuration Manager で使用する WSUS サーバーのメンテナンスをどうすればいいかお悩みではありませんか?
また、更新プログラムの配信がうまくいかない状況の中、どのようにトラブル シュートをすればよいか困ることも多いのではないでしょうか。
今回は、System Center 2012 Configuration Manager、および System Center 2012 R2 Configuration Manager を使って更新プログラムを管理されている皆様に、運用に役立つホワイト ペーパーをご紹介します!

Software Updates Management in System Center 2012 Configuration Manager
<https://www.microsoft.com/en-us/download/details.aspx?id=44578>

Configuration Manager ではトラブル シュートをするために参照するログの種類が多くあり、お客様より「どのログをみればよいのか」とご質問をいただくことが多々ございます。そのようなニーズにお答えした、ログ ベースで処理の流れをご案内している、実業務に即効性のあるホワイト ペーパーとなっております。
具体的にはConfiguration Manager 2012 におけるソフトウェア更新プログラム管理の概要、各処理のプロセスを踏まえた詳細な説明、問題が発生した場合のトラブル シュート方法についてご紹介しております。
英語で記載された資料とはなりますが、是非ご一読ください!

その中でも、よくお問い合わせをいただく ソフトウェアの更新ポイント サーバー (いわゆるConfiguration Manager で使用する WSUS サーバー) のメンテナンス方法について記載されている部分 (P9:MAINTENANCE) について、以下に日本語訳をご紹介いたします。
以下の WSUS サポート チームのブログ記事で紹介している WSUS サーバーのメンテナンス方法と類似した部分もありますが、Configuration Manager で管理している場合においても、特に実施をご検討いただくことをお勧めしたいポイントです。

WSUS DB インデックスの再構成の手順について
<https://blogs.technet.com/b/jpwsus/archive/2014/03/06/wsusdb.aspx>

WSUS サーバーのメンテナンスを実施していない場合、ソフトウェアの更新ポイントの同期処理に時間がかかり、タイムアウトによる同期の失敗が発生する可能性があります。
こちらはConfiguration Manager 2012 の安定運用に貢献できるポイントであると思いますので、是非ともお役立てください。


メンテナンス

期限切れの更新プログラム

更新プログラムがリリースされるプロセスの一部において、Microsoft Update カタログに存在した一部の更新プログラムが「期限切れ」になることがあります。この事象は一般的には新しい更新プログラムが利用可能になった場合に発生します。しかしながら、稀に更新プログラムに問題が見つかった場合においても、同様に問題の更新プログラムが「期限切れ」になることがあります。
ソフトウェアの更新ポイントが同期している間は、これらの「期限切れ」の更新プログラムは、Configuration Manager コンソールにおいて「期限切れ」にマークされます。「期限切れ」のステータスは、更新プログラム名の隣にグレー アイコンで表示されます。「期限切れ」の更新プログラムは定期的なスケジュールで、Configuration Manager のデータベースから自動的にクリーンアップされます。

「期限切れ」の更新プログラムのクリーンアップは SMS_WSUS_SYNC_MANAGER コンポーネントによって行われ、以下の条件に合致する場合のみ、削除対象となります。

・更新プログラムに展開が紐づいていないこと。
・更新プログラムの削除期間 (既定で 7 日) より古い更新プログラムであること。

最上位の Configuration Manager サイトの SMS_WSUS_SYNC_MANAGER は、削除が必要な更新プログラムを毎時間チェックし、上述の条件に合致した「期限切れ」の更新プログラムを削除します。SMS_WSUS_SYNC_MANAGER が「期限切れ」の更新プログラムを削除すると、wsyncmgr.log に以下のログが記録されます。

Deleting old expired updates... SMS_WSUS_SYNC_MANAGER
Deleted 100 expired updates SMS_WSUS_SYNC_MANAGER

Deleted 2995 expired updates total SMS_WSUS_SYNC_MANAGER
コンテンツのクリーンアップ

「期限切れ」の更新プログラムが削除されると、「期限切れ」の更新プログラムのコンテンツもどこからも参照されない状態になります。SMS_WSUS_SYNC_MANAGER は、どこからも参照されないコンテンツもクリーンアップします。コンテンツのクリーンアップ処理の一部として、SMS_WSUS_SYNC_MANAGER は、自身のサイトで保持している展開パッケージを分析し、もう参照されなくなったコンテンツを探して、展開パッケージのソース フォルダーからコンテンツを削除します。どこからも参照されなくなってから 1 日 (既定) を経過したコンテンツのみ削除されます。
いずれかのコンテンツが削除されると、更新プログラムの更新を配布ポイントに送信するために、対象のパッケージに対して配布ポイントの更新も行われます。SMS_WSUS_SYNC_MANAGER はどこからも参照されないコンテンツを削除すると、wsyncmgr.log に以下のログが記録されます。

Deleting orphaned content for package CS100006 (EPDefinitions) from source <PackageSource> SMS_WSUS_SYNC_MANAGER
Deleting orphaned content folder \\<PackageSource>\51b6db15-6938-4b37-9fa8-caf513e13930... SMS_WSUS_SYNC_MANAGER

Deleting orphaned content folder \\<PackageSource>\526b6a85-a62c-4d54-bc0d-b3409223b0df... SMS_WSUS_SYNC_MANAGER
Deleted 12 orphaned content folders in package CS100006 (EPDefinitions) SMS_WSUS_SYNC_MANAGER
Refreshing package CS100006 (EPDefinitions) SMS_WSUS_SYNC_MANAGER

~ 参考情報 ~
「期限切れ」の更新プログラムやコンテンツに対するクリーンアップ処理の流れに関する情報は、以下のブログ記事でもご紹介しております。

Software Update Content Cleanup in System Center 2012 Configuration Manager
<https://blogs.technet.com/b/configmgrteam/archive/2012/04/12/software-update-content-cleanup-in-system-center-2012-configuration-manager.aspx>

WSUS サーバーのメンテナンス

WSUS データベースの最適なパフォーマンスを維持するためには、Configuration Manager のソフトウェアの更新ポイントの役割を構成している WSUS サーバーにおいて、WSUS データベース (SUSDB) に対する「インデックスの再構成」と共に、「WSUS サーバー クリーンアップ ウィザード」を定期的に実施することをお勧めしております。「WSUS サーバー クリーンアップ ウィザード」を複数階層の WSUS サーバーで実施する場合は、もっとも下層に位置する WSUS サーバーから順番に上の階層の WSUS サーバーでも実施していき、最上位の WSUS サーバーで実施するまで、ウィザードを実施していく必要があります(※)。同じ階層の WSUS サーバーにおいては、このWSUS サーバーのメンテナンスは同時に実行することができます。また、「インデックスの再構成」はどの順番で実施しても問題ありませんが、「WSUS サーバー クリーンアップ ウィザード」と「インデックスの再構成」をそれぞれの WSUS サーバーで実施する際は、まず「インデックスの再構成」を行い、その後「WSUS サーバー クリーンアップ ウィザード」を実行することをお勧めします。「インデックスの再構成」を最初に SUSDB に実行してパフォーマンスを改善することで、「WSUS サーバー クリーンアップ ウィザード」の完了までにかかる時間も短縮されます。

(※)ホワイトペーパーに記載はありませんが、同じサイトに複数のソフトウェアの更新ポイントが存在する階層においては以下の問題が発生する可能性がありますので、下位 WSUS サーバーから実施して最上位の WSUS サーバーで「WSUS サーバー クリーンアップ ウィザード」の実行が完了するまでは、ソフトウェア更新ポイントの同期は停止しておく必要があります。なお、プライマリ サイトとセカンダリ サイトにソフトウェアの更新ポイントが 1 台ずつ存在する構成の場合は、こちらはレプリカ構成にはなりませんので、順番の考慮は不要です。

レプリカ構成では サーバー クリーンアップ ウィザード にご注意ください
<https://blogs.technet.com/b/jpwsus/archive/2012/06/08/3502667.aspx>

WSUS データベース (SUSDB) に対するインデックスの再構成

以下の TechNet 情報で公開しているスクリプトを使用して、WSUS データベース (SUSDB) に対するインデックスの再構成を行います。

<https://gallery.technet.microsoft.com/scriptcenter/6f8cde49-5c52-4abd-9820-f1d270ddea61>

SQL Server 上に WSUS データベースをインストールしている場合
SQL Server Management Studio を使用して、データベース サーバーに接続し、「インデックスの再構成」のスクリプトを実行します。

Windows Internal Database (WID) 上に WSUS データベースをインストールしている場合
SQL Server Management Studio Express もしくは sqlcmd ユーティリティを使用します。

1. SQL Server Management Studio Express を使う場合
a. SQL Server Management Studio Express を起動して、データベース サーバーに接続します。

Windows Server 2012 もしくは 2012 R2 の場合 :
\\.\pipe\MICROSOFT##WID\tsql\query をサーバー名に指定します。

Windows Server 2012 以前の OS の場合 :
\\.\pipe\MSSQL$MICROSOFT##SSEE\sql\query をサーバー名に指定します。

b. [新しいクエリ] をクリックして、クエリ画面に上述のスクリプトを貼り付けて、[実行] をクリックします。

2. sqlcmd ユーティリティを使う場合、コマンド プロンプトを [管理者として実行] にて起動して、以下のコマンドを実行します。

Windows Server 2012 もしくは 2012 R2 の場合 :
sqlcmd -S \\.\pipe\MICROSOFT##WID\tsql\query -i <scriptLocation>\WsusDBMaintenance.sql

Windows Server 2012 以前の OS の場合 :
sqlcmd -S \\.\pipe\MSSQL$MICROSOFT##SSEE\sql\query -i <scriptLocation>\WsusDBMaintenance.sql

補足事項 :
SQL Server か WID か、どちらのデータベースを現在利用しているかにつきましては、WSUS サーバーの以下のレジストリ値から判断できます。

HKLM\Software\Microsoft\Update Services\Server\Setup\SQLServerName

レジストリ値が <サーバー名>、もしくは <サーバー名>\<インスタンス名> であれば、SQL Server です。##SSEE や ##WID といった文字列が含まれていれば、WID です。

補足事項 :
インストールする SQL Server Management Studio Express のバージョンについては、以下をご確認ください。

1. Windows Server 2012 もしくは 2012 R2 の場合、C:\Windows\WID\Log に移動し、最新の error.log をメモ帳で開きます。
2. Windows Server 2012 以前の OS の場合、C:\Windows\SYSMSI\SSEE\MSSQL.2005\MSSQL\LOG に移動し、最新の error.log をメモ帳で開きます。

error.log の先頭で、9.00.4035.00 x64 のようなバージョン番号を確認することができます。https://www.sqlteam.com/article/sql-server-versions に記載されているバージョン番号を基に、動作中の SQL Server の Service Pack レベルまで確認します。バージョン番号と Service Pack レベルを基に、ダウンロード センターより SQL Server Management Studio Express を探します。

WSUS サーバー クリーンアップ ウィザードの実行

「WSUS サーバー クリーンアップ ウィザード」は、WSUS 管理コンソールの [オプション] より実行することができます。WSUS のメンテナンスは、月に 1 回実行することをお勧めしております。もし本番環境の WSUS サーバーにおいて、長期間「WSUS サーバー クリーンアップ ウィザード」を実行していない場合は、クリーンアップがタイムアウト、もしくは失敗する可能性があります。もしタイムアウトや失敗した場合は、[不要な更新プログラムと更新プログラムのリビジョン] のチェック ボックス (最上位のチェック ボックス) のみをオンにして、実行してください。その後クリーンアップ ウィザードが完了するまで待ってから、次のチェック ボックスをオンにして、再度クリーンアップを実行します。そのため、クリーンアップが完了するまでに、いくつかのステップを踏む可能性があることをご留意ください。最後にすべてのチェック ボックスをオンにして、クリーンアップを実行します。

「WSUS サーバー クリーンアップ ウィザード」に関する情報は、以下の TechNet 情報でもご紹介しております。

Use the Server Cleanup Wizard
<https://technet.microsoft.com/en-us/library/dd939856(v=ws.10)>