Leaked source code of windows server 2003
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

'*********************************************************************
'
' 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