Windows 是否可以返回带有VBA的磁盘的卷GUID?

Windows 是否可以返回带有VBA的磁盘的卷GUID?,windows,vba,excel,wmi,wmi-query,Windows,Vba,Excel,Wmi,Wmi Query,我遇到另一个帖子 海报上展示了一种通过VBA和WMI获取USB设备UID的方法,但我不确定如何使用VBA从WMI中检索VolumeGUID,这一点没有得到回答 我想获取DeviceID,然后如果可能的话,返回与DeviceID匹配的特定设备的VolumeGuide 这篇文章似乎暗示这是可能的,但它是为C++ 我只是查询了错误的WMI类吗?我以前使用VBS来执行此操作,您可以减少并修改它以在VBA中使用 strComputer = "." Set objWMIService = GetObjec

我遇到另一个帖子 海报上展示了一种通过VBA和WMI获取USB设备UID的方法,但我不确定如何使用VBA从WMI中检索VolumeGUID,这一点没有得到回答

我想获取DeviceID,然后如果可能的话,返回与DeviceID匹配的特定设备的VolumeGuide

这篇文章似乎暗示这是可能的,但它是为C++


我只是查询了错误的WMI类吗?

我以前使用VBS来执行此操作,您可以减少并修改它以在VBA中使用

strComputer = "." 
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")

Volume
MountPoint


Sub Volume()
    Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_Volume") ' Windows XP and earlier:  not available.
    wscript.echo "[ Win32_Volume ] - " & colItems.Count & " items"
    For Each objItem in colItems
        ShowT "Access", objItem.Access
        ShowT "Automount", objItem.Automount
        ShowT "Availability", objItem.Availability
        ShowT "BlockSize", objItem.BlockSize
        ShowT "Capacity", objItem.Capacity
        ShowT "Caption", objItem.Caption
        ShowT "Compressed", objItem.Compressed
        ShowT "Description", objItem.Description
        ShowT "DeviceID", objItem.DeviceID
        ShowT "DirtyBitSet", objItem.DirtyBitSet
        ShowT "DriveLetter", objItem.DriveLetter
        ShowT "DriveType", objItem.DriveType
        ShowT "FileSystem", objItem.FileSystem
        ShowT "FreeSpace", objItem.FreeSpace
        ShowT "IndexingEnabled", objItem.IndexingEnabled
        ShowT "Label", objItem.Label
        ShowT "MaximumFileNameLength", objItem.MaximumFileNameLength
        ShowT "Name", objItem.Name
        ShowT "NumberOfBlocks", objItem.NumberOfBlocks
        ShowT "PNPDeviceID", objItem.PNPDeviceID
        ShowT "Purpose", objItem.Purpose
        ShowT "Status", objItem.Status
        ShowT "StatusInfo", objItem.StatusInfo
        ShowT "SerialNumber", objItem.SerialNumber
        ShowT "SupportsDiskQuotas", objItem.SupportsDiskQuotas
        ShowT "SupportsFileBasedCompression", objItem.SupportsFileBasedCompression
        wscript.echo "-----"
    Next
    wscript.echo vbCrlf & "====================" & vbCrlf
End Sub

Sub MountPoint()
    Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_MountPoint")
    wscript.echo "[ Win32_MountPoint ] - " & colItems.Count & " items"
    For Each objItem in colItems
        ShowT "Directory", objItem.Directory
        ShowT "Volume", objItem.Volume
        wscript.echo "-----"
    Next
    wscript.echo vbCrlf & "====================" & vbCrlf
End Sub

Sub ShowT(s, obj)
    If Len(obj) > 0 Then Wscript.Echo vbTab & s & ": " & obj
End Sub

我相信我应该能够转换这个谢谢你我会给它一个机会!因此,我能够让它工作,但有没有办法从Win32 pPentity中的设备ID获取VolumeGUIDs,我在那里发布了这个问题