gpt4 book ai didi

windows - 使用 VBScript 查找 USB 盘符

转载 作者:可可西里 更新时间:2023-11-01 11:37:14 26 4
gpt4 key购买 nike

我在 http://network-blog.lan-secure.com/2008/03/usb-detection-using-wmi-script.html 上找到了这个脚本

 strComputer = "." '(Any computer name or address)
Set wmi = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set wmiEvent = wmi.ExecNotificationQuery("select * from __InstanceOperationEvent within 1 where TargetInstance ISA 'Win32_PnPEntity' and TargetInstance.Description='USB Mass Storage Device'")
While True
Set usb = wmiEvent.NextEvent()
Select Case usb.Path_.Class
Case "__InstanceCreationEvent" WScript.Echo("USB device found")
Case "__InstanceDeletionEvent" WScript.Echo("USB device removed")
Case "__InstanceModificationEvent" WScript.Echo("USB device modified")
End Select
Wend

这个脚本就在我需要的旁边。它检测到 USB 驱动器的插入。怎么修改才能找到U盘的盘符?如果我得到驱动器盘符,那么在插入时我将能够运行 Avast Antivirus 的命令行扫描程序,而不是回显“找到 USB 设备”以在插入时自动扫描驱动器。请指导!

最佳答案

这很难做到。最有用的驱动器信息是从 Win32_LogicalDrive 类中提取的。遗憾的是,可移动驱动器通常不会在此类中填充有关驱动器的大量信息。 DeviceID 和 PNPDeviceID 等有用的属性通常留空。下一个最好的做法是为可移动磁盘的实例迭代 Win32_LogicalDisk 类。为了与您的事件驱动方法保持一致,这看起来像这样。

strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set wmiEvent = objWMIService.ExecNotificationQuery( _
"Select * From __InstanceCreationEvent Within 1" & _
" Where TargetInstance ISA 'Win32_PnPEntity' and" & _
" TargetInstance.Description='USB Mass Storage Device'")

While True
Set objEvent = wmiEvent.NextEvent()
Set objUSB = objEvent.TargetInstance
strName = objUSB.Name
strDeviceID = objUSB.DeviceID
Set objUSB = Nothing

Set colDrives = objWMIService.ExecQuery( _
"Select * From Win32_LogicalDisk Where DriveType = 2")

For Each objDrive in colDrives
strDriveLetter = objDrive.DeviceID
Next
Set colDrives = Nothing

WScript.Echo strName & " was mounted as " & strDriveLetter
Wend
Set wmiEvent = Nothing
Set objWMIService = Nothing

当然,这只有在插入的驱动器是系统上唯一的可移动磁盘时才有效。您可以通过在脚本启动时获取所有驱动器盘符并在插入驱动器时比较它们来解决此限制,但是,该方法也不是万无一失的。更改任何其他驱动器的驱动器号分配将导致您的脚本返回无效信息。

关于windows - 使用 VBScript 查找 USB 盘符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8277765/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com