从 Win32_DiskDrive 获取数据
Get data from Win32_DiskDrive
我尝试通过 VBScript 从 Win32_DiskDrive
获取磁盘数据时遇到问题。
这是我的代码:
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 &" = " & objClassProperty.value &vbCrLf
Next
DiskInfo = DiskInfo & "----------------------------------------------" &vbCrLf &vbCrLf
Next
WScript.Echo DiskInfo
objClassProperty.value
的值总是 null
。
这些值并不是 总是 null
,而是有时。有时它们也是数组,就像 null
值一样,数组无法打印。
您的代码不检查任何一种情况。下面的代码会检查对象和 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 ...
-------------------------------
我尝试通过 VBScript 从 Win32_DiskDrive
获取磁盘数据时遇到问题。
这是我的代码:
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 &" = " & objClassProperty.value &vbCrLf
Next
DiskInfo = DiskInfo & "----------------------------------------------" &vbCrLf &vbCrLf
Next
WScript.Echo DiskInfo
objClassProperty.value
的值总是 null
。
这些值并不是 总是 null
,而是有时。有时它们也是数组,就像 null
值一样,数组无法打印。
您的代码不检查任何一种情况。下面的代码会检查对象和 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 ... -------------------------------