• 締切済み

パソコンに接続されたUSBメモリの接続履歴を抽出

VBScriptを使ってパソコンに接続されたUSBメモリの接続履歴を抽出したいのですが、どなたかご教示願います。また、できればサンプルコードがあれば幸いです。

みんなの回答

  • 0909union
  • ベストアンサー率39% (325/818)
回答No.1

普通、OSのイベント履歴で検索でしょう。 特定デバイスなら、それらのログで検索。 WMIを使用すれば簡単なはずです。 OSによっては、USBコントロールのW32のオブジェクトにWMIでアクセスです。 サンプルは WMICodeCreator.exe を使えばいいでしょう。 OSのサービスレベルで監視されていますが、思うようなイベントが無い場合は、イベントとラップを自分でかけるしかないでしょう。特定のレジストリーを追加すると監視が追加される場合もあります。レジストリーとイベント名などで検索すればすぐわかります。 WMIでは、 _InstanceCreationEvent がヒントです。

Gowasu_na
質問者

お礼

0909union様 早速のアドバイス大変ありがとうございます。 WMICodeCreator.exeを早速、使ってみました。 何とか、WMIのクラスを指定してクエリーを実行することができました。 選択すると自動でスクリプトコードを記述して結果を表示してくれます。 大変便利なものですね、勉強になります。^^; 今回、VBscript作成ははじめてなのですが、実際にやりたいことは、 フリーソフト「USB History GUI」の実行結果のように、 接続されたデバイス名を取得し、接続時のタイムスタンプを取得したいです。 接続されたデバイス名 → (1) --- A-DATA USB Flash Drive USB Device 接続時のタイムスタンプ → Disk Stamp : 01/14/2001 23:47  <USB History GUI>の実行結果 (1) --- A-DATA USB Flash Drive USB Device instanceID: dc44f2640266be&0 ParentIdPrefix: Driver:{4d36e967-e325-11ce-bfc1-08002be10318}\0007 Disk Stamp: 01/14/2011 23:47 Volume Stamp: 06/05/2010 11:31 Windows7のレジストリ内を見てみると、 \HKEY_LOCAL_MACHINE\SYSYTEM\ContorolSet001\Enum\USBSTOR内に instanceIDの値 → 上記USBSTOR内のフォルダ名(dc44f2640266be&0)が同値、 Driveの値 → 上記フォルダ内 があるのですが、 接続時のタイムスタンプ値:Disk Stamp: 01/14/2011 23:47 やボリュームのタイムスタンプ値:Volume Stamp: 06/05/2010 11:31 の場所がよくわかりません。 どのように抽出しているのでしょうか。(なんとか知りたいです。) また、以下の回答において、 「OSのサービスレベルで監視されていますが、思うようなイベントが無い場合は、イベントとラップを自分でかけるしかないでしょう。特定のレジストリーを追加すると監視が追加される場合もあります。レジストリーとイベント名などで検索すればすぐわかります。」 は、WMICodeCreator.exeでどのようにすればよいのか、よく分かっていませんので、もう一度ご教示願います。(イベントとラップを自分でかける??特定のレジストリーを追加すると監視が追加??レジストリーとイベント名などで検索??)^^;初心者ですいません。 また「WMIでは、_InstanceCreationEventがヒントです。」にあっても、 WMICodeCreator.exeでインスタンス指定の場所は、Recive an event タブ内でいいのでしょうか。(マニュアル的なものがあれば、助かりますが。) どうかよろしくお願いします。

すると、全ての回答が全文表示されます。

関連するQ&A