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.

168 lines
4.7 KiB

  1. <!-- *****************************************************************
  2. '
  3. ' objtext.wsf
  4. '
  5. ' Purpose: test object text functionality
  6. '
  7. ' Parameters: none
  8. '
  9. ' Returns: 0 - success
  10. ' 1 - failure
  11. '
  12. '****************************************************************** -->
  13. <job id="ObjectTextExample">
  14. <reference object="WbemScripting.SWbemLocator" version="1.2"/>
  15. <script language="VBScript">
  16. on error resume next
  17. set scriptHelper = CreateObject("WMIScriptHelper.WSC")
  18. scriptHelper.logFile = "c:\temp\objtext.txt"
  19. scriptHelper.loggingLevel = 3
  20. scriptHelper.testName = "OBJECTTEXT"
  21. scriptHelper.testStart
  22. '*****************************
  23. 'Get an object
  24. '*****************************
  25. set disk = GetObject("winmgmts:win32_logicaldisk")
  26. if err <> 0 then
  27. scriptHelper.writeErrorToLog err, "Failed to get disk?"
  28. else
  29. scriptHelper.writeToLog "Disk retrieved correctly", 2
  30. end if
  31. '*****************************
  32. 'Get the DMTF XML text
  33. '*****************************
  34. cimXmlStr = disk.GetText_ (wbemObjectTextFormatCIMDTD20)
  35. if err <> 0 then
  36. scriptHelper.writeErrorToLog err, "Failed to get DMTF XML text"
  37. else
  38. scriptHelper.writeToLog "DMTF XML text retrieved correctly", 2
  39. scriptHelper.writeToLog "", 2
  40. scriptHelper.writeToLog "*************************************************",2
  41. scriptHelper.writeToLog cimXmlStr,2
  42. scriptHelper.writeToLog "*************************************************",2
  43. scriptHelper.writeToLog "", 2
  44. end if
  45. '*****************************
  46. 'Get the WMI20 XML text
  47. '*****************************
  48. wmi20XmlStr = disk.GetText_ (wbemObjectTextFormatWMIDTD20)
  49. if err <> 0 then
  50. scriptHelper.writeErrorToLog err, "Failed to get WMI 2.0 XML text"
  51. else
  52. scriptHelper.writeToLog "WMI 2.0 XML text retrieved correctly", 2
  53. scriptHelper.writeToLog "", 2
  54. scriptHelper.writeToLog "*************************************************",2
  55. scriptHelper.writeToLog wmi20XmlStr,2
  56. scriptHelper.writeToLog "*************************************************",2
  57. scriptHelper.writeToLog "", 2
  58. end if
  59. '*****************************
  60. 'Get a new base class
  61. '*****************************
  62. set newClass = GetObject("winmgmts:root\default").Get ()
  63. if err <> 0 then
  64. scriptHelper.writeErrorToLog err, "Failed to get new base class"
  65. else
  66. scriptHelper.writeToLog "Base class retrieved correctly", 2
  67. end if
  68. '*****************************
  69. 'Get a new XML document
  70. '*****************************
  71. set xml = CreateObject("Microsoft.XMLDOM")
  72. xml.async = false
  73. if err <> 0 then
  74. scriptHelper.writeErrorToLog err, "Failed to create XML document"
  75. else
  76. scriptHelper.writeToLog "XML document created correctly", 2
  77. end if
  78. '*****************************
  79. 'Get the base class XML representation
  80. '*****************************
  81. xmlStr = newClass.GetText_ (wbemObjectTextWMIDTD20)
  82. if err <> 0 then
  83. scriptHelper.writeErrorToLog err, "Failed to get XML representation"
  84. else
  85. scriptHelper.writeToLog "XML representation retrieved OK", 2
  86. end if
  87. '*****************************
  88. 'Load the XML into the document
  89. '*****************************
  90. xml.loadXML xmlStr
  91. if err <> 0 then
  92. set parseError = xml.parseError
  93. scriptHelper.writeErrorToLog err, "Error loading XML: " & parseError.errorCode & _
  94. " - " & parseError.reason
  95. else
  96. scriptHelper.writeToLog "XML loaded OK", 2
  97. end if
  98. '*****************************
  99. 'Set the class name
  100. '*****************************
  101. set classNode = xml.SelectSingleNode ("*/CLASS")
  102. if err <> 0 then
  103. scriptHelper.writeErrorToLog err, "Error in selecting node"
  104. else
  105. scriptHelper.writeToLog "Node selected OK", 2
  106. end if
  107. classNode.attributes ("NAME").nodeValue = "Foo"
  108. if err <> 0 then
  109. scriptHelper.writeErrorToLog err, "Error in setting attribute value"
  110. else
  111. scriptHelper.writeToLog "Set attribute OK", 2
  112. end if
  113. '*****************************
  114. 'Reload the changed XML into the WMI object
  115. '*****************************
  116. newClass.SetFromText_ xml.xml, wbemObjectTextWMIDTD20
  117. if err <> 0 then
  118. scriptHelper.writeErrorToLog err, "Error reloading object from XML"
  119. else
  120. scriptHelper.writeToLog "Reloading object from XML OK", 2
  121. end if
  122. '*****************************
  123. 'Check the class name
  124. '*****************************
  125. if "Foo" <> newClass.Path_.Class then
  126. scriptHelper.writeErrorToLog null, "Class not set correctly"
  127. else
  128. scriptHelper.writeToLog "Class name set correctly", 2
  129. end if
  130. '*****************************
  131. 'Save it
  132. '*****************************
  133. newClass.Put_
  134. if err <> 0 then
  135. scriptHelper.writeErrorToLog err, "Error saving class"
  136. else
  137. scriptHelper.writeToLog "Saved class OK", 2
  138. end if
  139. scriptHelper.testComplete
  140. if scriptHelper.statusOK then
  141. WScript.Echo "PASS"
  142. WScript.Quit 0
  143. else
  144. WScript.Echo "FAIL"
  145. WScript.Quit 1
  146. end if
  147. </script>
  148. </job>