WMI の典型的なイベント監視のサンプルです。 ( リンク先は、Microsoft の TechNet のスクリプト センターです ) ファイル作成の監視1) C:\scripts フォルダを作成します。 2) 適当な場所にスクリプトを作成します(file_create.vbs) 3) そのフォルダをエクスプローラでSHIFTキーを押しながら右クリックしてコマンドブロンプトを開きます 4) cscript file_create.vbs と実行します 5) C:\scripts でファイルを作成します![]()
strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & _ strComputer & "\root\cimv2") Set colMonitoredEvents = objWMIService.ExecNotificationQuery _ ("SELECT * FROM __InstanceCreationEvent WITHIN 10 WHERE " _ & "Targetinstance ISA 'CIM_DirectoryContainsFile' and " _ & "TargetInstance.GroupComponent= " _ & "'Win32_Directory.Name=""c:\\\\scripts""'") Do Set objLatestEvent = colMonitoredEvents.NextEvent Wscript.Echo objLatestEvent.TargetInstance.PartComponent Loop
ファイル変更の監視
strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & _ strComputer & "\root\cimv2") Set colMonitoredEvents = objWMIService.ExecNotificationQuery _ ("SELECT * FROM __InstanceModificationEvent WITHIN 10 WHERE " _ & "TargetInstance ISA 'CIM_DataFile' and " _ & "TargetInstance.Name='c:\\scripts\\index.vbs'") Do Set objLatestEvent = colMonitoredEvents.NextEvent Wscript.Echo "File: " & objLatestEvent.TargetInstance.Name Wscript.Echo "New size: " & objLatestEvent.TargetInstance.FileSize Wscript.Echo "Old size: " & objLatestEvent.PreviousInstance.FileSize Loop
ファイル削除の監視
strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & _ strComputer & "\root\cimv2") Set colMonitoredEvents = objWMIService.ExecNotificationQuery _ ("SELECT * FROM __InstanceDeletionEvent WITHIN 10 WHERE " _ & "Targetinstance ISA 'CIM_DirectoryContainsFile' and " _ & "TargetInstance.GroupComponent= " _ & "'Win32_Directory.Name=""c:\\\\scripts""'") Do Set objLatestEvent = colMonitoredEvents.NextEvent Wscript.Echo objLatestEvent.TargetInstance.PartComponent Loop
利用できるディスク領域の監視
Const LOCAL_HARD_DISK = 3 strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colMonitoredDisks = objWMIService.ExecNotificationQuery _ ("Select * from __instancemodificationevent within 30 where " _ & "TargetInstance isa 'Win32_LogicalDisk'") Do Set objDiskChange = colMonitoredDisks.NextEvent If objDiskChange.TargetInstance.DriveType = LOCAL_HARD_DISK Then If objDiskChange.TargetInstance.Size < 100000000 Then Wscript.Echo "Hard disk space is below 100000000 bytes." End If End If Loop
VBScriptドキュメント
|
【VBS + WMIの最新記事】
- Windows10 : VBScript : WMI を使用してレジストリ情報より、shell: を使ってフォルダを開く(実行できる)コマンドラインの一覧ボタンを表示する Html Applicati..
- VBScript( WMI )によるイベント関数を WMI に登録するタイマー処理
- VBScript : スクリプトを終了しないようにする
- 64ビット PC の VBScript で 32ビット ODBC ドライバの一覧を取得する( ODBC 接続のドライバ文字列を正しく取得したい )
- VBScript : WMI と NT Provider(ADSI) をそれぞれ使用して、共有を『登録』『一覧』『削除』するサンプル
- VBSCript+WMI : コンピュータ上のファイル検索と詳細情報
- VBScript : OSのバージョンを取得
- VBS : コンピュータから c$ 共有を一時的に削除
- VBS : 指定した HOST 名を現在の IP アドレスで HOSTS ファイルに登録するスクリプト
【VBScript関連のカテゴリ】