[Q&A]
|
|
|
はじめに
Windows OSやアプリケーションの脆弱性を修正し、ウイルスや不正アクセスなどからシステムを保護するためには、更新プログラムの適用と管理が重要だ。本連載では、更新プログラムの管理にWindows Server Update Services(WSUS)を実際に活用しているユーザーならではの、よくある疑問や質問をピックアップして回答する。なお、特にバージョンを示さない場合は、最新のWSUS SP1を対象とする。WSUSについては、別稿の「[運用]Windows Server Update Services」も参照していただきたい。
■Q&A■
残ったままの「ダウンストリーム サーバー」を削除したい |
現象の詳細:
不要になったダウンストリームのWSUSサーバを廃止したところ、アップストリーム・サーバのWeb管理コンソールの[レポート]に、廃止したWSUSサーバが残ったままになってしまった。もう存在しない[ダウンストリーム サーバー]の情報をなんとか削除したい。
ストアド・プロシージャを実行して、データベースからダウンストリーム・サーバの情報を削除する |
回答の詳細:
WSUSシステムは、そこが知りたいWindows Server Update Services(第2回)で解説したように、同期と管理の主従関係を通じて複数のWSUSサーバを階層構造に配置できる。更新元となる上位階層のWSUSサーバが「アップストリーム・サーバ」で、アップストリーム・サーバから更新プログラム情報や更新プログラム・ファイルをダウンロードするのが「ダウンストリーム・サーバ」だ。
さて、アップストリーム・サーバと同期を実行しているダウンストリーム・サーバを知るには、アップストリーム・サーバのWeb管理コンソールで[レポート]−[設定の概要]を開いて、[ダウンストリーム サーバー]の項目を見てみよう(画面1)。1台のアップストリーム・サーバには、デフォルトでは最大1000台のダウンストリーム・サーバが接続可能で、同期を実行したダウンストリーム・サーバが順次登録されていく。
画面1 ダウンストリーム・サーバの一覧 | |||
ダウンストリーム・サーバは、アップストリーム・サーバの[レポート]−[設定の概要]に一覧表示されるが、Web管理コンソールでダウンストリーム・サーバを削除する機能はない。 | |||
|
ところが、ダウンストリーム・サーバの情報は一方的に追加されるばかりで、使われなくなったダウンストリーム・サーバを削除する画面や機能がないのである。正確にいえば、Web管理コンソールにダウンストリーム・サーバの管理機能が搭載されていないだけで、WSUS 2.0 APIのDownstreamServerCollectionクラスにある、AddメソッドやRemoveメソッドを操作すればダウンストリーム・サーバの追加や削除は可能だ。しかしWSUS 2.0 APIは.NET Framework 1.1を利用して構築されているため、VBScriptなどから簡単に利用することはできず、VB.NETなどでのプログラミングが必要になってしまう。WSUS 2.0 APIについては、次のリンクを参照してほしい。
そこで、もっと簡単な方法を探してデータベースを調べたところ、WSUSサーバが使用するデータベース内のtbDownstreamServerTargetテーブルに、ダウンストリーム・サーバのコンピュータ名や内部ID、同期日時などの情報が蓄積されていて、アップストリーム・サーバがダウンストリーム・サーバから同期要求を受信するたびにレコードを更新していることが分かった。WSUS 2.0は、ダウンストリーム・サーバの情報をレポートで表示する程度しか使っていないので、tbDownstreamServerTargetテーブルからダウンストリーム・サーバのレコードを削除すればよさそうだ。データベースの操作には、WSUSサーバの「%ProgramFiles\Update Services\Tools\osql」フォルダにあるOSQLコマンドを利用できるので、特別なツールを用意する必要はない。
さらに調査を進めると、クライアント・コンピュータをコンピュータ・グループで管理する機能を流用して、ダウンストリーム・サーバも特定のコンピュータ・グループのメンバとして管理されていることが判明した。クライアント・コンピュータおよびダウンストリーム・サーバとコンピュータ・グループの対応は、tbTargetInTargetGroupテーブルに記録されている。WSUS 2.0では使われていないが、ダウンストリーム・サーバごとに異なる承認状態を設定できる機能が計画されていたのだろう。
最終的に、ダウンストリーム・サーバの内部IDを引数として、spDeleteDownstreamServerストアド・プロシージャを実行すれば、tbDownstreamServerTargetテーブルとtbTargetInTargetGroupテーブルから、関連するレコードを安全に一掃できることが分かった。従って、不要なダウンストリーム・サーバ情報を削除するには、以下の手順を順に実行すればよい。
手順1――OSQLコマンドでダウンストリーム・サーバの内部IDを表示する
コマンド・プロンプトを開いてOSQLコマンドを起動し、SQL文を実行して削除したいダウンストリーム・サーバの内部IDを表示する(画面2)。
手順2――内部IDを引数としてspDeleteDownstreamServerストアド・プロシージャを実行する
次は、手順1で表示した内部IDを引数として、ストアド・プロシージャを実行する(画面3)。
画面3 spDeleteDownstreamServerストアド・プロシージャの実行 | ||||||
手順1で表示した内部IDを引数としてspDeleteDownstreamServerストアド・プロシージャを実行し、指定したダウンストリーム・サーバの情報を削除する。 | ||||||
|
手順3――Web管理コンソールで結果を確認する
以上で作業は終了である。アップストリーム・サーバのWeb管理コンソールを開いて、指定したダウンストリーム・サーバが削除されていることを確認する(画面4)。もし誤って削除しても、ダウンストリーム・サーバが次回同期を実行するとレコードが再作成される。
画面4 結果の確認 | |||
WSUSのWeb管理コンソールで削除結果を確認する。 | |||
|
運用 |
- Azure Web Appsの中を「コンソール」や「シェル」でのぞいてみる (2017/7/27)
AzureのWeb Appsはどのような仕組みで動いているのか、オンプレミスのWindows OSと何が違うのか、などをちょっと探訪してみよう - Azure Storage ExplorerでStorageを手軽に操作する (2017/7/24)
エクスプローラのような感覚でAzure Storageにアクセスできる無償ツール「Azure Storage Explorer」。いざというときに使えるよう、事前にセットアップしておこう - Win 10でキーボード配列が誤認識された場合の対処 (2017/7/21)
キーボード配列が異なる言語に誤認識された場合の対処方法を紹介。英語キーボードが日本語配列として認識された場合などは、正しいキー配列に設定し直そう - Azure Web AppsでWordPressをインストールしてみる (2017/7/20)
これまでのIaaSに続き、Azureの大きな特徴といえるPaaSサービス、Azure App Serviceを試してみた! まずはWordPressをインストールしてみる
|
|