というわけで前のエントリーの続きです。


あれから色々と試行錯誤してみたわけですが、結局エラーメッセージを除去する事は出来ず。こりゃあきらめるか、と半分諦めつつ改めて資料を漁っていると

@IT:Windows TIPS -- Tips:イベント・ログに任意の文字列を出力する

に、コマンドラインからイベントログを書き込むためのコマンドがいくつか紹介されていました。
本当はPure Perlで実現したかったんだけどねほら無理そうだしとか言い訳をしつつ、ここで紹介されている方法の一つ、eventcreateコマンドを使う方法でスクリプトを書いてみました。



use strict;
my $scriptname='loget_test';
my $logdata='Script is normally end.';

system("eventcreate /t information /id 1 /l Application /so $scriptname /d \"$logdata\"");


こんな感じのスクリプトを実行してやると



Event_1



…ま、このくらいなら許容範囲としておきますか。



ちなみに、eventcreateコマンドはXP/2003にしか入ってないので、2000ではこれで逃げる方法は使えませんな。@ITのページにもあるように、リソースキットがあればLogEvent.exeを使う方法もあるんですが、それだとWin32::EventLogと同じ問題があるそうで…悩ましいところですね。
eventcreate.exeをXPから持って行く…てのはライセンス的にNGですね駄目ですね。