Vbscript 从Win32_DiskDrive获取数据

Vbscript 从Win32_DiskDrive获取数据,vbscript,wmi,Vbscript,Wmi,我试图通过VBScript从Win32_DiskDrive获取磁盘数据时遇到问题 这是我的密码: dim objService、ColDiskDrive、objItem dim DiskInfo,objClassProperty 设置objService=GetObjectwinmgmts:\\.\Root\CIMV2 设置colDiskDrives=objService.ExecQuerySELECT*自Win32\u DiskDrive DiskInfo=磁盘驱动器信息&vbCrLf&vbC

我试图通过VBScript从Win32_DiskDrive获取磁盘数据时遇到问题

这是我的密码:

dim objService、ColDiskDrive、objItem dim DiskInfo,objClassProperty 设置objService=GetObjectwinmgmts:\\.\Root\CIMV2 设置colDiskDrives=objService.ExecQuerySELECT*自Win32\u DiskDrive DiskInfo=磁盘驱动器信息&vbCrLf&vbCrLf 对于ColDiskDrive中的每个objItem 对于objItem.Properties\u中的每个objClassProperty DiskInfo=DiskInfo&objClassProperty.Name&=&objClassProperty.value&vbCrLf 下一个 DiskInfo=DiskInfo&------------------------------&vbCrLf&vbCrLf 下一个 Echo DiskInfo
objClassProperty.value的值始终为空。

不是这些值始终为空,而是有时为空。有时它们也是数组,就像空值一样,不能打印数组

您的代码不会检查这两种情况。下面的代码执行此操作,并检查对象和Nothing值

Dim objService, colDiskDrives, objItem 
Dim DiskInfo, objClassProperty  

Set objService = GetObject("winmgmts:\\.\Root\CIMV2")
Set colDiskDrives = objService.ExecQuery("SELECT * FROM Win32_DiskDrive")

DiskInfo = "Disk Drive Info" & vbCrLf & vbCrLf   

For Each objItem in colDiskDrives
    For Each objClassProperty In objItem.Properties_
        DiskInfo = DiskInfo & objClassProperty.Name & " = " & StringVal(objClassProperty.value) & vbCrLf
    Next
    DiskInfo = DiskInfo & "----------------------------------------------" & vbCrLf & vbCrLf
Next

WScript.Echo DiskInfo

Function StringVal(value)
    If IsNull(value) Then
        StringVal = "[null]"
    ElseIf IsObject(value) Then
        If value Is Nothing Then StringVal = "[nothing]" Else StringVal = "[object]"
    ElseIf IsArray(value) Then
        StringVal = "[array]"
    Else
        StringVal = CStr(value)
    End If
End Function
给我打印这个

Availability = [null] BytesPerSector = 512 Capabilities = [array] CapabilityDescriptions = [array] Caption = SAMSUNG SSD 830 Series CompressionMethod = [null] ... more ... -------------------------------
对我有用。如何计算该值始终为空?您发布的代码在任何地方都不会检查,而且您也从未输出DiskInfo的值。@AnsgarWiechers我甚至无法运行此脚本。它显示了致命错误。您可能希望在问题中包含该致命错误。