Microsoft Windows Server DNS WMI DS

Microsoft.Windows.Server.DNS.WMI.DS (DataSourceModuleType)

Data Source that tests the DNS WMI provider

Element properties:

TypeDataSourceModuleType
IsolationAny
AccessibilityPublic
RunAsDefault
OutputTypeSystem.PropertyBagData

Member Modules:

ID Module Type TypeId RunAs 
RunScript DataSource Microsoft.Windows.TimedScript.PropertyBagProvider Default

Overrideable Parameters:

IDParameterTypeSelectorDisplay NameDescription
IntervalSecondsint$Config/IntervalSeconds$Interval Seconds
SyncTimestring$Config/SyncTime$Sync Time

Source Code:

<DataSourceModuleType ID="Microsoft.Windows.Server.DNS.WMI.DS" Accessibility="Public" Batching="false">
<Configuration>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="IntervalSeconds" type="xsd:integer"/>
<xsd:element xmlns:xsd="http://www.w3.org/2001/XMLSchema" minOccurs="1" name="SyncTime" type="xsd:string"/>
</Configuration>
<OverrideableParameters>
<OverrideableParameter ID="IntervalSeconds" Selector="$Config/IntervalSeconds$" ParameterType="int"/>
<OverrideableParameter ID="SyncTime" Selector="$Config/SyncTime$" ParameterType="string"/>
</OverrideableParameters>
<ModuleImplementation Isolation="Any">
<Composite>
<MemberModules>
<DataSource ID="RunScript" TypeID="Windows!Microsoft.Windows.TimedScript.PropertyBagProvider">
<IntervalSeconds>$Config/IntervalSeconds$</IntervalSeconds>
<SyncTime>$Config/SyncTime$</SyncTime>
<ScriptName>Microsoft.Windows.Server.DNS.WMI.DS.vbs</ScriptName>
<Arguments/>
<ScriptBody><Script>'Copyright (c) Microsoft Corporation. All rights reserved.

'*************************************************************************
' ScriptName: Microsoft.Windows.Server.DNS.WMI.DS
'
' Purpose: DNS Server DNS WMI DataSource
'
' File: Microsoft.Windows.Server.DNS.WMI.DS.vbs
'*************************************************************************

Option Explicit

SetLocale("en-us")

Dim wmiNamespaceString, wmiQueryString, ErrorMessage, ErrorNumber, junkVar
Dim objWMIService, colitems, objItem

wmiNamespaceString = "winmgmts://./root/MicrosoftDNS"
wmiQueryString = "SELECT EventLogLevel FROM MicrosoftDNS_Server"
ErrorMessage = "No Errors"
ErrorNumber = 0

ON ERROR RESUME NEXT

set objWMIService = GetObject(wmiNamespaceString)

If Err.Number &lt;&gt; 0 Then
ErrorNumber = Err.Number
ErrorMessage = Err.Description
Call ReturnPropertyBag
End If

set colitems = objWMIService.ExecQuery(wmiQueryString)
junkVar = colitems.count

If Err.Number &lt;&gt; 0 Then
ErrorNumber = Err.Number
ErrorMessage = Err.Description
Call ReturnPropertyBag
End If

If ( colitems.count = 0 ) Then
ErrorNumber = 1
ErrorMessage = "Zero items in record set"
Call ReturnPropertyBag
End If

For Each objItem In colitems

If IsNull(objItem.EventLogLevel) Then
ErrorNumber = 2
ErrorMessage = "EventLogLevel is null"
Call ReturnPropertyBag
End If

If Not IsNumeric(objItem.EventLogLevel) Then
ErrorNumber = 3
ErrorMessage = "EventLogLevel is not numeric"
Call ReturnPropertyBag
End If

Next

Call ReturnPropertyBag

Sub ReturnPropertyBag
Dim oAPI, oBag
Dim HexErrorNumber

HexErrorNumber = "0x" &amp; Hex(ErrorNumber)

Set oAPI = CreateObject("MOM.ScriptAPI")
Set oBag = oAPI.CreatePropertyBag()

Call oBag.AddValue("WMINamespace", wmiNamespaceString)
Call oBag.AddValue("WMIQuery", wmiQueryString)
Call oBag.AddValue("ErrorMessage", ErrorMessage)
Call oBag.AddValue("ErrorNumber", HexErrorNumber)

Call oAPI.Return(oBag)

WScript.Quit

End Sub</Script></ScriptBody>
<TimeoutSeconds>300</TimeoutSeconds>
</DataSource>
</MemberModules>
<Composition>
<Node ID="RunScript"/>
</Composition>
</Composite>
</ModuleImplementation>
<OutputType>System!System.PropertyBagData</OutputType>
</DataSourceModuleType>