無茶な実験

Windows SteadyState用がないなら、Windows Shared Computer Toolkit用のツールで何とかしよう

Microsoft Shared Computer Toolkit に対応はしていますか Microsoft Shared Computer Toolkitに対応するためのツールを、弊社にてご用意しております。

ツールのご提供はサポート担当より行なわせていただきます。お手数ですが、サポートセンターまでお問い合わせいただきますようお願いいたします。

問い合わせをしてツールを入手してみた。
ドキュメントを読んでみる

(3)osce_tool_6.5_7.0_7.3_win_jp_hfb1257.exeをCorp.サーバ上にて実行
osce_tool_6.5_7.0_7.3_win_jp_hfb1257.exeをCorp.サーバ上の任意のフォルダにコピーし、実行します。(※3)

このファイルを実行すると、まず、Corp.サーバの所定のフォルダにClnUpdNow.exeファイルがコピーされ、その後Corp.サーバで管理されているすべてのNT系OS(※4)のCorp.クライアントにClnUpdNow.exeというファイルが自動的に配信されます。

クライアントで試したいのにCorp.サーバにモジュールをインストールしなくてはいけないのか?

よくある質問
【Q6】
本書の手順(3)で、ツール(osce_tool_6.5_7.0_7.3_win_jp_hfb1257.exe)をCorp.サーバ上で実行したとき、なにが起こりますか?
また、結果をどのようにして確認すればよいですか?
【A6】
Hotfixを実行すると、Corp.サーバの所定のフォルダ(?)にファイル(ClnUpdNow.exe)がコピーされ、設定ファイル(?)に追記されます。
Corp.サーバは、??の動作を検知し、自動的にCorp.クライアントのインストールフォルダ(?)にファイル(ClnUpdNow.exe)を配信します。
この動作は、Corp.のHotfix機能と呼ばれる機能を利用しています。

インストール時の初期設定では、???は下記のとおりです。
? C:\Program Files\Trend Micro\OfficeScan\PCCSRV\Pccnt\Common\
? C:\Program Files\Trend Micro\OfficeScan\PCCSRV\Download\hotfixNT.txt
? C:\Program Files\Trend Micro\OfficeScan Client\

本書の手順(3)では、最終的にクライアントの所定のフォルダにファイル(ClnUpdNow.exe)がコピーされている必要があります。
残念ながら、Corp.サーバで、Hotfix配信の成功/失敗を確認することはできません。各Corp.クライアントにて、?の所定のフォルダにファイル(ClnUpdNow.exe)が存在するかどうかをご確認ください。

やっぱりCorp.サーバで実行しないとダメみたいだ。
 
試しにVistaマシンで実行してみたけど、エラーになって途中で止まった。
 
 
仕方ない。

  1. Microsoft Virtual PC 2007をインストールして
  2. Windows Server 2003 評価版をインストールして
  3. さらにウイルスバスターコーポレートエディションの体験版をインストールして
  4. 「ツール」を実行したところでやっと「ClnUpdNow.exe」を取り出すことに成功した。

 
っていうか、稼働中のサーバに試すだけのモジュールを気軽にインストールなんて出来る訳ないのに・・・ブツブツ
 
 
ドキュメントの最初のページには「Microsoftより提供されるモジュール」も必要らしい

Microsoft® Shared Computer Toolkit for Windows® XP が動作しているコンピュータ用のトレンドマイクロ ウイルス対策ソフトウェア製品更新スクリプト
トレンドマイクロ ウイルス対策ソフトウェア製品更新スクリプトは、マイクロソフトトレンドマイクロによって共同開発されました。このスクリプトは、Shared Computer Toolkit for Windows XPWindows ディスク保護機能がオンになっているコンピュータ上で トレンドマイクロ ウイルス対策ソフトウェア製品のウイルス定義ファイルを自動的に更新できるようにするためのものです。

こいつで入手できたファイルは2つ

  • AntiVirusUpdates.xml
  • SCTTrendMicroAntiVirus.vbs

注意事項
 
5.AntiVirusUpdates.xml をダウンロードし、%SCTPATH%\xml にコピーします。次に SCTTrendMicroAntiVirus.vbs をダウンロードし、%SCTPATH%\scripts\update にコピーします。
注意: 既定では %SCTPATH% は %ProgramFiles%\Microsoft Shared Computer Toolkit\ になります。

適用する場所も分かった。
 
 

AntiVirusUpdates.xml(SCT)

途中でテキトーに改行入ってます。

<antivirus>
 <Products>

  <Product>
   <Name>eTrust Antivirus 7.0</Name>	
   <Version>7.0</Version>
   <RegKey>HKEY_LOCAL_MACHINE\SOFTWARE\
ComputerAssociates\eTrustAntivirus\
CurrentVersion\Version</RegKey>
   <UpdateScriptname>script.vbs</UpdateScriptname>
  </Product>
・・・

 </Products>
</antivirus>

SCTTrendMicroAntiVirus.vbs

途中でテキトーに改行入ってます。

' ~~~ 
' ~~~ Force variables to be declared 
' ~~~ 
Option Explicit

' ~~~ 
' ~~~ Turn on error handling
' ~~~ 
On Error Resume Next

' ~~~ 
' ~~~ Declare global variables
' ~~~ 
Dim sTrendMicroPath, oShell, strComputer,
 oWMIService, ColProcesses

' ~~~ Create objects
Set oShell = CreateObject("WScript.Shell")

' ~~~ Set application path
sTrendMicroPath = oshell.RegRead(
"HKEY_LOCAL_MACHINE\SOFTWARE\TrendMicro\
PC-cillinNTCorp\CurrentVersion\Application Path")


'~~~ Download Virus Signature
call oShell.Run(""""& sTrendMicroPath &
 "\ClnUpdNow.exe""", 0, True)

 
ふむ。xmlレジストリキーを何かしているようで、vbsでプログラムを組み込むようにしているような感じがする。

 
 
さて、Windows SteadyStateをインストールしたパソコンにて
>D:\Program Files\Widnows SteadyState\XML\SoftwareUpdates.XML

<?xml version="1.0" encoding="utf-8" ?>
<softwareupdates>
...
  <software
    id="TrendMicro7.0"
    name="TrendMicro OfficeScan Corporate Edition 7.0"	
    detectionPath="SOFTWARE\TrendMicro\PC-cillin"
    detectionName="Application Path"
    append="pccmain.exe"
    script="SCTTrendMicroAntiVirus.vbs"
    category="Anti-Virus"  />

</softwareupdates>


>D:\Program Files\Widnows SteadyState\Scripts\SCTTrendMicroAntiVirus.vbs

' ~~~ 
' ~~~ Force variables to be declared 
' ~~~ 
Option Explicit

' ~~~ 
' ~~~ Turn on error handling
' ~~~ 
On Error Resume Next

' ~~~ 
' ~~~ Declare global variables
' ~~~ 
Dim sTrendMicroPath, oShell, strComputer,
 oWMIService, ColProcesses

' ~~~ Create objects
Set oShell = CreateObject("WScript.Shell")

' ~~~ Set application path
sTrendMicroPath = oshell.RegRead("
HKEY_LOCAL_MACHINE\SOFTWARE\TrendMicro\
PC-cillinNTCorp\CurrentVersion\Application Path")


'~~~ Download Virus Signature
call oShell.Run(""""& sTrendMicroPath &
 "\ClnUpdNow.exe""", 0, True)

なんだか同じじゃないか?
 
WSSにて自動的に検出されるセキュリティソフトの一覧がSoftwareUpdates.XMLなので、ここにウィルスバスターCorp.の情報を加えたらいけるんじゃないか?

まだまだ続く・・・
 

なまえ オリジナル 意訳 変更後
id TrendMicro7.0 他と区別する為 TrendMicro7.3
name TrendMicro OfficeScan Corporate Edition 7.0 表示用 TrendMicro OfficeScan Corporate Edition 7.3
detectionPath SOFTWARE\TrendMicro\PC-cillin レジストリのパス SOFTWARE\TrendMicro\PC-cillin
detectionName Application Path レジストリのパス Application Path
append pccmain.exe 実行するプログラム名 ?その1
script SCTTrendMicroAntiVirus.vbs レジストリ登録とClnUpdNow.exeの指定 ?その2
category Anti-Virus 分類 Anti-Virus
detectionPathとdetectionName

vbsファイルの中にあるレジストリの1行

HKEY_LOCAL_MACHINE\SOFTWARE\TrendMicro\PC-cillinNTCorp\CurrentVersion\Application Path

これから察すると「detectionPath」「detectionName」はレジストリのパスで問題なさそう。そのままでOKっぽい。

append

「?その1」は「ウィルスバスター2007」の場合はメイン画面のプログラムのようなので、Corpの場合には「PccNT.exe」が妥当っぽい。
 
D:\OfficeScan\PccNT.exe
が妥当かな?
 

script

スクリプトファイルを置く場所の指定が気になる。でも、WSSフォルダの中に「Scripts」フォルダがあるから、そこに突っ込めば良さそう。
 
出来上がったものがコレ。

  <software
    id="TrendMicro7.3"
    name="TrendMicro OfficeScan Corporate Edition 7.3"	
    detectionPath="SOFTWARE\TrendMicro\PC-cillin"
    detectionName="Application Path"
    append="D:\OfficeScan\PccNT.exe"
    script="SCTTrendMicroAntiVirus.vbs"
    category="Anti-Virus"  />

WSSの「ソフトウェア更新のスケジュール→セキュリティプログラムの更新」欄は再起動では認識しなかったので、OSの再起動を行なう。けど認識しない。

「カスタム更新」に賭けるしかない

 
もう一度vbsファイルを眺める

HKEY_LOCAL_MACHINE\SOFTWARE\TrendMicro\PC-cillinNTCorp\CurrentVersion\Application Path

このときのデータは「D:\OfficeScan NT\」となっている。そこにはClnUpdNow.exeファイルを置いてある。このままでも動きそうな予感がする。

  • 7.3
  • 8.500.1002
  • 4.591.00
  • 2007/07/10

今日のバージョンは確認した。ディスク保護を「再起動時にすべての変更を削除する」にしておいて、変化があるのか観察することにします。
 
 
今日はおしまい。

メインには書けないネタをお送りしています。

Windows SteadyState Windows Shared Computer Toolkit

Windows SteadyStateが公開されて暫くたったので検証を始めているのですが、相変わらずセキュリティソフトの更新が問題になっています。
 

まずはWindows SteadyState Handbookを参考にしてみます。

セキュリティ プログラムの更新
Windows SteadyState を使用したセキュリティ プログラム自動更新
は、次の 2 種類のうち、いずれかの方法で実行できます。

  • § Windows SteadyState のスケジュールを設定し、Windows SteadyState で検出されて [セキュリティ プログラムの更新] ボックスに表示されるセキュリティ プログラムが自動更新されるようにします。
  • § カスタム スクリプトを記述し、スケジュールされた日時に自動更新する更新プログラムに適用します。 ウイルス対策製品またはセキュリティ製品が Windows SteadyState による更新可能な製品として認識される場合は、セキュリティ プロ

グラムの更新を重要な更新プログラムの処理の一部として自動的に実行することが可能です。このハンドブックの発行時現在、
Windows SteadyState は、以下のセキュリティ製品を検出でき、更新用のスクリプトが組み込まれています。

この機能は、他のウイルス対策製品またはセキュリティ製品と連動させることができます。上記以外のウイルス対策プログラムを使用する場合、該当するウイルス対策ソフトウェアのマニュアルを参照して、署名更新スクリプトを作成してください。署名更新スクリプトは、手動で実行することもできます。更新プログラムを手動でインストールする方法の詳細については、このハンドブックの「更新プログラムを手動でダウンロードしてインストールする」を参照してください。

そして

カスタム更新
カスタム更新スクリプトのスケジュールを設定するには、[参照] をクリックしてスクリプトを検索します。テキスト ウィンドウに、カ
スタム スクリプトが表示されます。カスタム スクリプトは、[ソフトウェア更新のスケジュール] 機能を実行してテストする必要があります。
カスタム スクリプトは、カスタム スクリプト内のすべてのアクションが完了した後に復帰するように作成する必要があります。たとえば、スクリプトが別のプロセスを起動してその直後に復帰した場合、カスタム スクリプト プロセスの処理が [ソフトウェア更新のスケジュール] 機能で認識されず、スクリプトが完了したと見なされる場合があります。この結果、ファイルが部分的に更新されたり、カスタム スクリプトでエラーが発生する可能性があります。
スケジュールされた更新中、Windows SteadyState でのカスタム スクリプトの更新に任意のリソース (有効なネットワーク接続など) が
求められた場合、このリソースは更新時に使用できる状態となっている必要があります。
カスタム スクリプトの書き込み許可は、そのコンピュータの Administrators グループ内のユーザーにのみ与えられます。ローカル マシン アカウントおよびその他のユーザー アカウントには、カスタム スクリプトの書き込み許可はありません。 Windows SteadyState で自動的にスケジュールされたカスタム スクリプトの更新は、Microsoft Update の更新プログラムおよびウイルス対策更新プログラムの実行後に実行されます。 Windows SteadyState では、.exe、.vbs、.cmd、および .bat の各ファイル形式のカスタム スクリプトがサポートされます。

 
 
これらのドキュメントのポイントは

  • 対応しているウィルス対策ソフトは決まっている
  • 他のソフトはスクリプトで対応できる

ということになります。



ウィルスバスターCorp.の7.3を利用しているので、トレンドマイクロのサイトで調べてみました。
Windows SteadyStateの情報はなくてWindows Shared Computer Toolkitの情報はあった。(2007/07/11現在)