|
|
<!--
****************************************************************** ' ' deletevalues.wsf ' ' Purpose: test SWbemPropertyEx::DeleteValues ' ' Parameters: none ' ' Returns: 0 - success ' 1 - failure ' '***************************************************************** -->
<job id="WMI DeleteValues Test"> <reference object="WbemScripting.SWbemLocator" version="1.2"/> <script language="VBScript">
on error resume next
set scriptHelper = CreateObject("WMIScriptHelper.WSC") scriptHelper.logFile = "c:\temp\deletevalues.txt" scriptHelper.loggingLevel = 3 scriptHelper.testName = "WMI DeleteValues" scriptHelper.testStart
dim ns dim newClass dim sysClass, disk, process
' Get some useful classes for embedded objects set sysClass = GetObject("winmgmts:__SystemClass") set disk = GetObject("winmgmts:Win32_logicaldisk") set process = GetObject("winmgmts:Win32_process")
if err <> 0 then scriptHelper.writeErrorToLog err, "Failed to get utility classes" else scriptHelper.writeToLog "Successful retrieval of utility classes", 2 end if
' Connect to the namespace set ns = GetObject("winmgmts:root\default")
if err <> 0 then scriptHelper.writeErrorToLog err, "Failed to connect to root\default" else scriptHelper.writeToLog "Successful connection to root\default", 2 end if
'Make a new class set newClass = ns.Get
if err <> 0 then scriptHelper.writeErrorToLog err, "Failed to get empty class" else scriptHelper.writeToLog "Successful retrieval of empty class", 2 end if
newClass.Path_.Class = "DELETEVALUES000TEST"
' Add a non-array property (uint32) set p0 = newClass.Properties_.Add ("p0", 19) p0 = 251 ' Add some array properties, one for each type
set p = newClass.Properties_.Add ("pSint8", wbemCimtypeSint8, true) p.Value = Array (-1, 0, 3, 1, 2, 3)
set p = newClass.Properties_.Add ("pUint8", wbemCimtypeUint8, true) p.Value = Array (0, 1, 123, 222, 1, 0, 1)
set p = newClass.Properties_.Add ("pSint16", wbemCimtypeSint16, true) p.Value = Array (-1, 0, 1, 3, -4)
set p = newClass.Properties_.Add ("pUint16", wbemCimtypeUint16, true) p.Value = Array (0, 1, 65535, 23)
set p = newClass.Properties_.Add ("pSint32", wbemCimtypeSint32, true) p.Value = Array (-1, 0, 1, 2, 89)
set p = newClass.Properties_.Add ("pUint32", wbemCimtypeUint32, true) p.Value = Array (0, 1, 65535, 26)
set p = newClass.Properties_.Add ("pSint64", wbemCimtypeSint64, true) p.Value = Array ("-1", "0", "1", "2", "11")
set p = newClass.Properties_.Add ("pUint64", wbemCimtypeUint64, true) p.Value = Array ("0", "1", "65535", "123", "65535")
set p = newClass.Properties_.Add ("pReal32", wbemCimtypeReal32, true) p.Value = Array (1.2, -123.456, 23.004, 34.44)
set p = newClass.Properties_.Add ("pReal64", wbemCimtypeReal64, true) p.Value = Array (1.2, -123.456, 23.004, 332.1)
set p = newClass.Properties_.Add ("pBoolean", wbemCimtypeBoolean, true) p.Value = Array (true, false, true, true)
set p = newClass.Properties_.Add ("pString", wbemCimtypeString, true) p.Value = Array ("I", "have", "but", "an", "hour", "Obey", "the", "time")
set p = newClass.Properties_.Add ("pDatetime", wbemCimtypeDatetime, true) p.Value = Array ("20000120195632.000000-480", _ "20000120195632.000000+480", "20000120195632.000000-480", "20000120195632.000000-480")
set p = newClass.Properties_.Add ("pReference", wbemCimtypeReference, true) p.Value = Array ("root\cimv2:win32_logicaldisk", _ "root\default:__cimomidentification=@", "root\default:__cimomidentification=@", _ "root\cimv2:win32_logicaldisk")
set p = newClass.Properties_.Add ("pChar16", wbemCimtypeChar16, true) p.Value = Array (34, 35, 36, 37)
set p = newClass.Properties_.Add ("pObject", wbemCimtypeObject, true) p.Value = Array (sysClass, disk, process, disk)
if err <> 0 then scriptHelper.writeErrorToLog err, "Failed to define class" else scriptHelper.writeToLog "Successful definition of class", 2 end if
' Save the class newClass.Put_
if err <> 0 then scriptHelper.writeErrorToLog err, "Failed to save class" else scriptHelper.writeToLog "Successful save of class", 2 end if
' Get it back set newClass = ns.Get ("DELETEVALUES000TEST")
if err <> 0 then scriptHelper.writeErrorToLog err, "Failed to get class" else scriptHelper.writeToLog "Successful get of class", 2 end if
' now test each property type TestUint8 TestSint8 TestUint16 TestSint16 TestUint32 TestSint32 TestUint64 TestSint64 TestReal32 TestReal64 TestBoolean TestString TestDatetime TestReference TestChar16 TestObject
' Save the class newClass.Put_
if err <> 0 then scriptHelper.writeErrorToLog err, "Failed to save class" else scriptHelper.writeToLog "Successful save of class", 2 end if
' Clean up newClass.Delete_
if err <> 0 then scriptHelper.writeErrorToLog err, "Failed to delete class" else scriptHelper.writeToLog "Successful delete of class", 2 end if
scriptHelper.testComplete
if scriptHelper.statusOK then WScript.Echo "PASS" WScript.Quit 0 else WScript.Echo "FAIL" WScript.Quit 1 end if
'**************************************************************** '* '* TestUint8 '* ========= '* '* Test AddValues for uint8 arrays '* '****************************************************************
Sub TestUint8
on error resume next
' Try a delete of first match set pUint8 = newClass.Properties_("pUint8") pUint8.DeleteValues 123 scriptHelper.DisplayValue newClass, "pUint8" scriptHelper.VerifyValue pUint8.Value, Array (0, 1, 222, 1, 0, 1)
' Try a delete of all matches pUint8.DeleteValues Array (0, 1), wbemDeleteValuesDeleteAllMatches scriptHelper.DisplayValue newClass, "pUint8" scriptHelper.VerifyValue pUint8.Value, Array (222)
' Try a delete of all pUint8.DeleteValues , wbemDeleteValuesDeleteAll scriptHelper.DisplayValue newClass, "pUint8" scriptHelper.VerifyValue pUint8.Value, Array ()
End Sub
'**************************************************************** '* '* TestSint8 '* ========= '* '* Test AddValues for sint8 arrays '* '**************************************************************** Sub TestSint8 on error resume next
' Try a delete of first match set pSint8 = newClass.Properties_("pSint8") pSint8.DeleteValues Array (0, 22, 3) scriptHelper.DisplayValue newClass, "pSint8" scriptHelper.VerifyValue pSint8.Value, Array (-1, 3, 1, 2, 3)
' Try a delete of all matches within a range pSint8.DeleteValues Array (3, 1), wbemDeleteValuesDeleteAllMatches, 1, 2 scriptHelper.DisplayValue newClass, "pSint8" scriptHelper.VerifyValue pSint8.Value, Array (-1, 2, 3)
' Try a delete of all pSint8.DeleteValues , wbemDeleteValuesDeleteAll scriptHelper.DisplayValue newClass, "pSint8" scriptHelper.VerifyValue pSint8.Value, Array ()
End Sub
'**************************************************************** '* '* TestString '* ============ '* '* Test AddValues for string arrays '* '****************************************************************
Sub TestString
on error resume next
' Try a delete of first match set pString = newClass.Properties_("pString") pString.DeleteValues "Obey", wbemDeleteValuesDeleteFirstMatch, 5, -1 scriptHelper.DisplayValue newClass, "pString" scriptHelper.VerifyValue pString.Value, Array ("I", "have", "but", "an", "hour", "the", "time")
' Try a delete of all matches within a range pString.DeleteValues Array ("I", "You", "Me", "the"), wbemDeleteValuesDeleteAllMatches, 0, 5 scriptHelper.DisplayValue newClass, "pString" scriptHelper.VerifyValue pString.Value, Array ("have", "but", "an", "hour", "time")
' Try a delete of all pString.DeleteValues , wbemDeleteValuesDeleteAll scriptHelper.DisplayValue newClass, "pString" scriptHelper.VerifyValue pString.Value, Array ()
End Sub
'**************************************************************** '* '* TestUint16 '* ========== '* '* Test AddValues for uint16 arrays '* '****************************************************************
Sub TestUint16
on error resume next
' Try a delete of first match set pUint16 = newClass.Properties_("pUint16") pUint16.DeleteValues Array (2, 3, 4, 54, 23), wbemDeleteValuesDeleteFirstMatch, 0, -1 scriptHelper.DisplayValue newClass, "pUint16" scriptHelper.VerifyValue pUint16.Value, Array (0, 1, 65535)
' Try a delete of all matches within a range pUint16.DeleteValues Array (0, 65535), wbemDeleteValuesDeleteAllMatches scriptHelper.DisplayValue newClass, "pUint16" scriptHelper.VerifyValue pUint16.Value, Array (1)
' Try a delete of all pUint16.DeleteValues , wbemDeleteValuesDeleteAll scriptHelper.DisplayValue newClass, "pUint16" scriptHelper.VerifyValue pUint16.Value, Array ()
End Sub
'**************************************************************** '* '* TestSint16 '* ========== '* '* Test AddValues for sint16 arrays '* '**************************************************************** Sub TestSint16
on error resume next
' Try a delete of first match set pSint16 = newClass.Properties_("pSint16") pSint16.DeleteValues -1, wbemDeleteValuesDeleteFirstMatch scriptHelper.DisplayValue newClass, "pSint16" scriptHelper.VerifyValue pSint16.Value, Array (0, 1, 3, -4)
' Try a delete of all matches within a range pSint16.DeleteValues Array (0, 65535, -4), wbemDeleteValuesDeleteAllMatches scriptHelper.DisplayValue newClass, "pSint16" scriptHelper.VerifyValue pSint16.Value, Array (1, 3)
' Try a delete of all pSint16.DeleteValues , wbemDeleteValuesDeleteAll scriptHelper.DisplayValue newClass, "pSint16" scriptHelper.VerifyValue pSint16.Value, Array ()
End Sub
'**************************************************************** '* '* TestUint32 '* ========== '* '* Test AddValues for uint32 arrays '* '****************************************************************
Sub TestUint32
on error resume next
' Try a delete of first match set pUint32 = newClass.Properties_("pUint32") pUint32.DeleteValues 1, wbemDeleteValuesDeleteFirstMatch scriptHelper.DisplayValue newClass, "pUint32" scriptHelper.VerifyValue pUint32.Value, Array (0, 65535, 26)
' Try a delete of all matches within a range pUint32.DeleteValues Array (0, 65535, -4), wbemDeleteValuesDeleteAllMatches scriptHelper.DisplayValue newClass, "pUint32" scriptHelper.VerifyValue pUint32.Value, Array (26)
' Try a delete of all pUint32.DeleteValues , wbemDeleteValuesDeleteAll scriptHelper.DisplayValue newClass, "pUint32" scriptHelper.VerifyValue pUint32.Value, Array ()
End Sub
'**************************************************************** '* '* TestSint32 '* ========== '* '* Test AddValues for sint32 arrays '* '****************************************************************
Sub TestSint32
on error resume next
' Try a delete of first match set pSint32 = newClass.Properties_("pSint32") pSint32.DeleteValues 11, wbemDeleteValuesDeleteFirstMatch scriptHelper.DisplayValue newClass, "pSint32" scriptHelper.VerifyValue pSint32.Value, Array (-1, 0, 1, 2, 89)
' Try a delete of all matches within a range pSint32.DeleteValues Array (0, 65535, -4, 2, 89), wbemDeleteValuesDeleteAllMatches, 0, 2 scriptHelper.DisplayValue newClass, "pSint32" scriptHelper.VerifyValue pSint32.Value, Array (-1, 1, 2, 89)
' Try a delete of all pSint32.DeleteValues , wbemDeleteValuesDeleteAll scriptHelper.DisplayValue newClass, "pSint32" scriptHelper.VerifyValue pSint32.Value, Array ()
End Sub
'**************************************************************** '* '* TestUint64 '* ========== '* '* Test AddValues for uint64 arrays '* '****************************************************************
Sub TestUint64
on error resume next
' Try a delete of first match set pUint64 = newClass.Properties_("pUint64") pUint64.DeleteValues "1", wbemDeleteValuesDeleteFirstMatch scriptHelper.DisplayValue newClass, "pUint64" scriptHelper.VerifyValue pUint64.Value, Array ("0", "65535", "123", "65535")
' Try a delete of all matches within a range pUint64.DeleteValues Array ("65535"), wbemDeleteValuesDeleteAllMatches, 0, 2 scriptHelper.DisplayValue newClass, "pUint64" scriptHelper.VerifyValue pUint64.Value, Array ("0", "123", "65535")
' Try a delete of all pUint64.DeleteValues , wbemDeleteValuesDeleteAll scriptHelper.DisplayValue newClass, "pUint64" scriptHelper.VerifyValue pUint64.Value, Array ()
End Sub
'**************************************************************** '* '* TestSint64 '* ========== '* '* Test AddValues for sint64 arrays '* '****************************************************************
Sub TestSint64
on error resume next
' Try a delete of first match set pSint64 = newClass.Properties_("pSint64") pSint64.DeleteValues "21", wbemDeleteValuesDeleteFirstMatch scriptHelper.DisplayValue newClass, "pSint64" scriptHelper.VerifyValue pSint64.Value, Array ("-1", "0", "1", "2", "11")
' Try a delete of all matches within a range pSint64.DeleteValues Array ("-1", "11"), wbemDeleteValuesDeleteAllMatches, 0, 2 scriptHelper.DisplayValue newClass, "pSint64" scriptHelper.VerifyValue pSint64.Value, Array ("0", "1", "2", "11")
' Try a delete of all pSint64.DeleteValues , wbemDeleteValuesDeleteAll scriptHelper.DisplayValue newClass, "pSint64" scriptHelper.VerifyValue pSint64.Value, Array ()
End Sub
'**************************************************************** '* '* TestReal32 '* ========== '* '* Test AddValues for real32 arrays '* '****************************************************************
Sub TestReal32
on error resume next
' NB - note the use of CSng to force constants to be of type ' VT_R4. If we don't do this the supplied constant is of ' type VT_R8 (default for VB and VBScript). This internally ' causes floating point rounding errors when comparing against ' VT_R4's since VT_R4 to VT_R8 conversion is not "pad with 0's".
' Try a delete of first match set pReal32 = newClass.Properties_("pReal32") pReal32.DeleteValues CSng(1.2), wbemDeleteValuesDeleteFirstMatch scriptHelper.DisplayValue newClass, "pReal32" scriptHelper.VerifyValue pReal32.Value, Array (-123.456, 23.004, 34.44)
' Try a delete of all matches within a range pReal32.DeleteValues Array (CSng(0), CSng(65535), CSng(34.44)), wbemDeleteValuesDeleteAllMatches scriptHelper.DisplayValue newClass, "pReal32" scriptHelper.VerifyValue pReal32.Value, Array (-123.456, 23.004)
' Try a delete of all pReal32.DeleteValues , wbemDeleteValuesDeleteAll scriptHelper.DisplayValue newClass, "pReal32" scriptHelper.VerifyValue pReal32.Value, Array ()
End Sub
'**************************************************************** '* '* TestReal64 '* ========== '* '* Test AddValues for real64 arrays '* '****************************************************************
Sub TestReal64
on error resume next
' Try a delete of first match set pReal64 = newClass.Properties_("pReal64") pReal64.DeleteValues 332.1, wbemDeleteValuesDeleteFirstMatch scriptHelper.DisplayValue newClass, "pReal64" scriptHelper.VerifyValue pReal64.Value, Array (1.2, -123.456, 23.004)
' Try a delete of first match pReal64.DeleteValues 32.1, wbemDeleteValuesDeleteFirstMatch scriptHelper.DisplayValue newClass, "pReal64" scriptHelper.VerifyValue pReal64.Value, Array (1.2, -123.456, 23.004)
' Try a delete of all matches within a range pReal64.DeleteValues Array (23.004, -123.456), wbemDeleteValuesDeleteAllMatches scriptHelper.DisplayValue newClass, "pReal64" scriptHelper.VerifyValue pReal64.Value, Array (1.2)
' Try a delete of all matches within a range pReal64.DeleteValues Array (23.004, -123.456), wbemDeleteValuesDeleteAllMatches scriptHelper.DisplayValue newClass, "pReal64" scriptHelper.VerifyValue pReal64.Value, Array (1.2)
' Try a delete of all pReal64.DeleteValues , wbemDeleteValuesDeleteAll scriptHelper.DisplayValue newClass, "pReal64" scriptHelper.VerifyValue pReal64.Value, Array ()
End Sub
'**************************************************************** '* '* TestBoolean '* =========== '* '* Test AddValues for boolean arrays '* '****************************************************************
Sub TestBoolean
on error resume next
' Try a delete of first match set pBoolean = newClass.Properties_("pBoolean") pBoolean.DeleteValues true, wbemDeleteValuesDeleteFirstMatch, 1 scriptHelper.DisplayValue newClass, "pBoolean" scriptHelper.VerifyValue pBoolean.Value, Array (true, false, true)
' Try a delete of all matches within a range pBoolean.DeleteValues Array (true, true), wbemDeleteValuesDeleteAllMatches scriptHelper.DisplayValue newClass, "pBoolean" scriptHelper.VerifyValue pBoolean.Value, Array (false)
' Try a delete of all pBoolean.DeleteValues , wbemDeleteValuesDeleteAll scriptHelper.DisplayValue newClass, "pBoolean" scriptHelper.VerifyValue pBoolean.Value, Array ()
End Sub
'**************************************************************** '* '* TestDatetime '* ============ '* '* Test AddValues for datetime arrays '* '**************************************************************** Sub TestDatetime
on error resume next
' Try a delete of first match set pDatetime = newClass.Properties_("pDatetime") pDatetime.DeleteValues "20000120195632.000000-480", wbemDeleteValuesDeleteFirstMatch, 1 scriptHelper.DisplayValue newClass, "pDatetime" scriptHelper.VerifyValue pDatetime.Value, Array ("20000120195632.000000-480", _ "20000120195632.000000+480", "20000120195632.000000-480")
' Try a delete of all matches within a range pDatetime.DeleteValues Array ("20000120195632.000000-480", "20000120195632.000000-480"), _ wbemDeleteValuesDeleteAllMatches, , 1 scriptHelper.DisplayValue newClass, "pDatetime" scriptHelper.VerifyValue pDatetime.Value, Array ("20000120195632.000000+480", "20000120195632.000000-480")
' Try a delete of all pDatetime.DeleteValues , wbemDeleteValuesDeleteAll scriptHelper.DisplayValue newClass, "pDatetime" scriptHelper.VerifyValue pDatetime.Value, Array ()
End Sub
'**************************************************************** '* '* TestReference '* ============= '* '* Test AddValues for reference arrays '* '****************************************************************
Sub TestReference
on error resume next
' Try a delete of first match set pReference = newClass.Properties_("pReference") pReference.DeleteValues Array ("root\cimv2:win32_logicaldisk", _ "root\default:__cimomidentification=@"), wbemDeleteValuesDeleteFirstMatch scriptHelper.DisplayValue newClass, "pReference" scriptHelper.VerifyValue pReference.Value, Array ("root\default:__cimomidentification=@", _ "root\default:__cimomidentification=@", "root\cimv2:win32_logicaldisk")
' Try a delete of all matches within a range pReference.DeleteValues Array ("root\default:__cimomidentification=@", _ "root\default:__cimomidentification=@", "root\cimv2:win32_logicaldisk"), _ wbemDeleteValuesDeleteAllMatches scriptHelper.DisplayValue newClass, "pReference" scriptHelper.VerifyValue pReference.Value, Array ()
' Try a delete of all pReference.Value = null pReference.DeleteValues , wbemDeleteValuesDeleteAll scriptHelper.DisplayValue newClass, "pReference" scriptHelper.VerifyValue pReference.Value, null
End Sub
'**************************************************************** '* '* TestChar16 '* ========== '* '* Test AddValues for char16 arrays '* '****************************************************************
Sub TestChar16
on error resume next
' Try a delete of first match set pChar16 = newClass.Properties_("pChar16") pChar16.DeleteValues 35, wbemDeleteValuesDeleteFirstMatch scriptHelper.DisplayValue newClass, "pChar16" scriptHelper.VerifyValue pChar16.Value, Array (34, 36, 37)
' Try a delete of all matches within a range pChar16.DeleteValues Array (35, 36, 34, 42, 43, 44), wbemDeleteValuesDeleteAllMatches scriptHelper.DisplayValue newClass, "pChar16" scriptHelper.VerifyValue pChar16.Value, Array (37)
' Try a delete of all pChar16.DeleteValues , wbemDeleteValuesDeleteAll scriptHelper.DisplayValue newClass, "pChar16" scriptHelper.VerifyValue pChar16.Value, Array ()
End Sub
'**************************************************************** '* '* TestObject '* ========== '* '* Test AddValues for object arrays '* '****************************************************************
Sub TestObject
on error resume next
End Sub
</script> </job>
|