こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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

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

投稿日時 - 2011-01-05 01:17:45

QNo.6426042

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

4人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

普通、OSのイベント履歴で検索でしょう。

特定デバイスなら、それらのログで検索。

WMIを使用すれば簡単なはずです。

OSによっては、USBコントロールのW32のオブジェクトにWMIでアクセスです。

サンプルは WMICodeCreator.exe を使えばいいでしょう。

OSのサービスレベルで監視されていますが、思うようなイベントが無い場合は、イベントとラップを自分でかけるしかないでしょう。特定のレジストリーを追加すると監視が追加される場合もあります。レジストリーとイベント名などで検索すればすぐわかります。

WMIでは、

_InstanceCreationEvent

がヒントです。

投稿日時 - 2011-01-11 09:47:51

お礼

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 タブ内でいいのでしょうか。(マニュアル的なものがあれば、助かりますが。)

どうかよろしくお願いします。

投稿日時 - 2011-01-15 13:27:10

あなたにオススメの質問