aij[beta]

日々の芥

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
--.--.-- --:-- | スポンサー広告 | トラックバック(-) | コメント(-) |
windows XPや2003 server以降で使用できる、"eventtriggers"というコマンドがある。
イベントログを監視して、特定のイベントが発生したらアプリケーションを起動するコマンドだ。構造的には、イベント監視定義とタスク生成を組み合わせており、"schtasks"と似たようなコマンドなのだが、これのタスク生成部分がうまくいかない。


eventtriggers /create /RU user /RP pass /TR "hogehoge" /TK "C:\Program Files\app\a.exe" /EID XXXX /SO "XXXXX"

となるのだけど、/TK以下に指定するパス名に問題があるようで、設定できるのだが、タスクが起動しない。設定されたタスクを見ると、どうもパス名にスペースがあるのがダメらしい。ググっても、schtaskで似たような悩みがあり、LFNを使用せずに対応という例があるばかり。
要はコマンドラインの特殊文字のエスケープなので

/TK "C:\Program Files\app\a.exe"



/TK "\"C:\Program Files\app\a.exe\""

と"\"でエスケープしてやるとうまくいった。schtaskでも同様の動きをするようだ。

むやみにディレクトリを作りたくないし、アプリケーションや、ユーザードキュメントは"Program Files"や"Document and Settings"以下にあるのが既定なのだから、このあたり注意事項がtechnetあたりにあれば1時間も無駄にしないのになあ。他にも悩む人がいるかもしれないのでメモ。

それにしても、このコマンドは有益。特定のイベントが発生したら、メール発信したり、あるいはサービスを起動したりとこれまでサードパーティのツールで行っていたことが低コストでできる。



スポンサーサイト

ajiさん初めまして。
norimaki2000です。

schtasksコマンドで空白を含むパス名を登録するとき、ダブルクォーテーションで囲まれた内側の文字列だけが設定されてしまう現象に何時間も悩んでいました。
結局もう朝になってしまいました。
そのときajiさんのこの記事を読んで目からウロコでした。
これで一つ悩みが解決しました。
ありがとうございました。

2008.10.06 04:11 URL | norimaki2000 #mJAlevm2 [ 編集 ]













管理者にだけ表示

トラックバックURL↓
http://aij.blog80.fc2.com/tb.php/627-be0c3db5

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。