You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
144 lines
3.9 KiB
144 lines
3.9 KiB
'*********************************************************************
|
|
'
|
|
' sysprop.vbs
|
|
'
|
|
' Purpose: test system property functionality
|
|
'
|
|
' Parameters: none
|
|
'
|
|
' Returns: 0 - success
|
|
' 1 - failure
|
|
'
|
|
'*********************************************************************
|
|
|
|
on error resume next
|
|
set scriptHelper = CreateObject("WMIScriptHelper.WSC")
|
|
scriptHelper.logFile = "c:\temp\sysprop.txt"
|
|
scriptHelper.loggingLevel = 3
|
|
scriptHelper.testName = "SYSPROP"
|
|
scriptHelper.testStart
|
|
|
|
'*****************************
|
|
' Get a disk
|
|
'*****************************
|
|
set disk = GetObject ("winmgmts:root\cimv2:Win32_LogicalDisk='C:'")
|
|
|
|
if err <> 0 then
|
|
scriptHelper.writeErrorToLog err, "Failed to get test instance"
|
|
else
|
|
scriptHelper.writeToLog "Test instance retrieved correctly", 2
|
|
end if
|
|
|
|
'*****************************
|
|
' Get the __CLASS property
|
|
'*****************************
|
|
className = disk.SystemProperties_("__CLASS")
|
|
|
|
if err <> 0 then
|
|
scriptHelper.writeErrorToLog err, "Failed to get __CLASS"
|
|
elseif "Win32_LogicalDisk" <> className then
|
|
scriptHelper.writeErrorToLog null, "__CLASS value is incorrect"
|
|
else
|
|
scriptHelper.writeToLog "__CLASS retrieved correctly", 2
|
|
end if
|
|
|
|
'*****************************
|
|
' Try to add a property - should fail
|
|
'*****************************
|
|
disk.SystemProperties_.Add "__FRED", 8
|
|
|
|
if err <> 0 then
|
|
scriptHelper.writeToLog "Expected failure to add a system property", 2
|
|
err.clear
|
|
else
|
|
scriptHelper.writeErrorToLog null, "Unexpectedly successful addition of system property"
|
|
end if
|
|
|
|
'*****************************
|
|
' Iterate through the system properties
|
|
'*****************************
|
|
EnumerateProperties disk
|
|
|
|
'*****************************
|
|
' Count the system properties
|
|
'*****************************
|
|
spCount = disk.SystemProperties_.Count
|
|
|
|
if err <> 0 then
|
|
scriptHelper.writeErrorToLog err, "Error retrieving Count"
|
|
else
|
|
scriptHelper.writeToLog "There are " & spCount & " system properties", 2
|
|
end if
|
|
|
|
'*****************************
|
|
' Get an empty class
|
|
'*****************************
|
|
set emptyClass = GetObject("winmgmts:root\default").Get
|
|
|
|
if err <> 0 then
|
|
scriptHelper.writeErrorToLog err, "Failed to get empty test class"
|
|
else
|
|
scriptHelper.writeToLog "Empty test class retrieved correctly", 2
|
|
end if
|
|
|
|
'*****************************
|
|
' Set the __CLASS property
|
|
'*****************************
|
|
|
|
emptyClass.SystemProperties_("__CLASS").Value = "Stavisky"
|
|
|
|
if err <> 0 then
|
|
scriptHelper.writeErrorToLog err, "Failed to set __CLASS in empty class"
|
|
else
|
|
scriptHelper.writeToLog "__CLASS set in empty class correctly", 2
|
|
end if
|
|
|
|
if emptyClass.Path_.Class <> "Stavisky" then
|
|
scriptHelper.writeErrorToLog null, "Incorrect class name set in path"
|
|
else
|
|
scriptHelper.writeToLog "Class name set in path correctly", 2
|
|
end if
|
|
|
|
scriptHelper.testComplete
|
|
|
|
if scriptHelper.statusOK then
|
|
WScript.Echo "PASS"
|
|
WScript.Quit 0
|
|
else
|
|
WScript.Echo "FAIL"
|
|
WScript.Quit 1
|
|
end if
|
|
|
|
Sub EnumerateProperties (obj)
|
|
scriptHelper.writeToLog "Enumerating all properties...", 2
|
|
for each property in obj.SystemProperties_
|
|
scriptHelper.writeToLog " " & property.Name & " - " & property.CIMType, 2
|
|
|
|
value = property.Value
|
|
|
|
if IsNull(value) then
|
|
scriptHelper.writeToLog " Value: <null>", 2
|
|
elseif property.IsArray then
|
|
valueStr = "["
|
|
|
|
for i = LBound(value) to UBound(value)
|
|
valueStr = valueStr + value(i)
|
|
|
|
if i < UBound(value) then valueStr = valueStr + ", "
|
|
next
|
|
|
|
valueStr = valueStr + "]"
|
|
scriptHelper.writeToLog " Value: " & valueStr, 2
|
|
else
|
|
scriptHelper.writeToLog " Value: " & property.Value, 2
|
|
end if
|
|
|
|
if err <> 0 then scriptHelper.writeErrorToLog err, "Hmm"
|
|
next
|
|
|
|
if err <> 0 then
|
|
scriptHelper.writeErrorToLog err, "...Failed to enumerate"
|
|
else
|
|
scriptHelper.writeToLog "...Enumeration complete", 2
|
|
end if
|
|
End Sub
|