使用vbs返回驱动器接口类型和驱动器号

时间:2013-01-23 14:55:19

标签: vbscript

我正在尝试使用WMI调用获取驱动器接口类型和驱动器号,但驱动器号始终作为计算机上最后分配的驱动器返回

有人可以帮忙吗?

'On Error Resume Next
 Option Explicit

 Dim strComputer, objWMIService, colIDiskDrive, objDiskDrive, colLogicalDisk, objLogicalDisk, strDriveLetter, strPNPDeviceID, strDiskLetter, strInterfaceType

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

Set colIDiskDrive = objWMIService.ExecQuery("Select * from Win32_DiskDrive",,48)

For Each objDiskDrive in colIDiskDrive
strPNPDeviceID = objDiskDrive.PNPDeviceID
strInterfaceType = objDiskDrive.InterfaceType
Set colLogicalDisk = objWMIService.ExecQuery("Select * from Win32_LogicalDisk") 

For Each objLogicalDisk in colLogicalDisk
        strDiskLetter = objLogicalDisk.Name
Next

Wscript.Echo strInterfaceType & " " & strDiskLetter
Next

1 个答案:

答案 0 :(得分:0)

如果我做对了,我将Echo移到第二个/嵌套的For / Next循环中:

Option Explicit

Dim strComputer, objWMIService, colIDiskDrive, objDiskDrive, colLogicalDisk, objLogicalDisk, strDriveLetter, strPNPDeviceID, strDiskLetter, strInterfaceType

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

Set colIDiskDrive = objWMIService.ExecQuery("Select * from Win32_DiskDrive",,48)

For Each objDiskDrive in colIDiskDrive
    strPNPDeviceID = objDiskDrive.PNPDeviceID
    strInterfaceType = objDiskDrive.InterfaceType
    Set colLogicalDisk = objWMIService.ExecQuery("Select * from Win32_LogicalDisk") 

    For Each objLogicalDisk in colLogicalDisk
        strDiskLetter = objLogicalDisk.Name
        Wscript.Echo strInterfaceType & " " & strDiskLetter
    Next
Next