问: 您好,脚本专家!如何确定 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