問: 您好,腳本專家!如何確定 USB 閃存驅動器的連接時間? -- PS 答: 您好,PS。是的,我們承認:腳本專家確實懶惰。(尤其是在周五,這一天我們必須編寫周一專欄。)可能有一種方法能夠專門監視何時插入 USB 閃存驅動器。但是,我們找不到這種方法,至少不能馬上找到它。不可否認,或許我們可能感覺有點困難。但是,我們還是決定編寫一個腳本,用來告訴您任何可移動驅動器與計算機連接(或斷開連接)的時間。我們希望這樣可以為您提供一些附加價值和靈活性。 嗨,我們并沒有說我們確實已為您提供了附加價值和靈活性。我們只是希望自己能夠做到。 實際上,這是一個容易編寫的小腳本。另外,它還有一個優點,就是能夠在任意版本的 Windows 上運行。(最初,我們曾經不加思索地想要使用 Win32_VolumeChangeEvent 類來完成這項任務,但是,該特定 WMI 類只能在 Windows Server 2003 上找到。) 該段代碼如下所示:
復制代碼 代碼如下:
strComputer = "." Set objWMIService = GetObject("winmgmts://" & strComputer & "/root/cimv2") Set colEvents = objWMIService.ExecNotificationQuery _ ("Select * From __InstanceOperationEvent Within 10 Where " _ & "TargetInstance isa 'Win32_LogicalDisk'") Do While True Set objEvent = colEvents.NextEvent If objEvent.TargetInstance.DriveType = 2 Then Select Case objEvent.Path_.Class Case "__InstanceCreationEvent" Wscript.Echo "Drive " & objEvent.TargetInstance.DeviceId & _ " has been added." Case "__InstanceDeletionEvent" Wscript.Echo "Drive " & objEvent.TargetInstance.DeviceId & _ " has been removed." End Select End If Loop