【发布时间】:2012-02-19 03:04:35
【问题描述】:
我正在运行以下 WMI 脚本来获取系统上驱动器号和物理驱动器之间的关联,但由于某种原因,它忽略了 CDROM/DVD-ROM。谁能告诉我如何获得这些?
ComputerName = "."
Set wmiServices = GetObject _
("winmgmts:{impersonationLevel=Impersonate}!//" & ComputerName)
Set wmiDiskDrives = wmiServices.ExecQuery _
("SELECT DeviceID FROM Win32_DiskDrive")
For Each wmiDiskDrive In wmiDiskDrives
strEscapedDeviceID = _
Replace(wmiDiskDrive.DeviceID, "\", "\\", 1, -1, vbTextCompare)
Set wmiDiskPartitions = wmiServices.ExecQuery _
("ASSOCIATORS OF {Win32_DiskDrive.DeviceID=""" & _
strEscapedDeviceID & """} WHERE " & _
"AssocClass = Win32_DiskDriveToDiskPartition")
For Each wmiDiskPartition In wmiDiskPartitions
Set wmiLogicalDisks = wmiServices.ExecQuery _
("ASSOCIATORS OF {Win32_DiskPartition.DeviceID=""" & _
wmiDiskPartition.DeviceID & """} WHERE " & _
"AssocClass = Win32_LogicalDiskToPartition")
For Each wmiLogicalDisk In wmiLogicalDisks
WScript.Echo wmiLogicalDisk.DeviceID & " = " & wmiDiskDrive.DeviceID
Next
Next
Next
【问题讨论】:
-
此代码用于检测驱动器号是否与逻辑磁盘分区相关联——这是您真正想要的吗?听起来像是更简单的代码,比如Enumerating Disk Drive Properties Using FSO 可以吗?
-
谢谢,但这不是我需要的。当前脚本(如果您运行它)会在驱动器号和物理驱动器路径之间产生关联。类似于:“C:”=“\\.\PhysicalDrive0”,但它不会为我的 CD 驱动器产生相同的结果,即“D:”=“\\.\CDROM0”。我想知道为什么?