Data Integration Discovery
Microsoft.HostIntegrationServer.2009.DataIntDiscovery (Discovery)
Discovers the HIS Data Integration feature
Knowledge Base article: Element properties: Object Discovery Details: Member Modules:
Source Code: <Discovery ID="Microsoft.HostIntegrationServer.2009.DataIntDiscovery" Enabled="true" Target="Microsoft.HostIntegrationServer.2009.HISInstallations" ConfirmDelivery="false" Remotable="true" Priority="Normal">
<Category>Discovery</Category>
<DiscoveryTypes>
<DiscoveryClass TypeID="Microsoft.HostIntegrationServer.2009.DataInt">
<Property TypeID="System!System.Entity" PropertyID="DisplayName"/>
</DiscoveryClass>
</DiscoveryTypes>
<DataSource ID="DS" TypeID="Windows!Microsoft.Windows.TimedScript.DiscoveryProvider">
<IntervalSeconds>43265</IntervalSeconds>
<SyncTime/>
<ScriptName>HIS2009 Data Discovery.vbs</ScriptName>
<Arguments>$MPElement$ $Target/Id$ $Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$</Arguments>
<ScriptBody><Script>
'--------------------------------------------------------------------------------------------------
' <name>HIS2009 Data Discovery.vbs</name>
' <company>Microsoft Corporation</company>
' <copyright>Copyright (c) Microsoft Corporation 2009</copyright>
' <summary>
' Microsoft Host Integration Server 2009 Data discovery script for use with SCOM 2007.
' Provides discovery functions for Host Integration Server 2009 Data.
' </summary>
'
' See Management Pack Guide for details on parameters and usage
'--------------------------------------------------------------------------------------------------
SetLocale("en-us")
Dim oAPI, oDiscoveryData, oInst
Set oAPI = CreateObject("MOM.ScriptAPI")
Dim oArgs
Set oArgs = WScript.Arguments
if oArgs.Count < 3 Then
Wscript.Quit -1
End If
Dim SourceID, ManagedEntityId, TargetComputer
SourceId = oArgs(0)
ManagedEntityId = oArgs(1)
TargetComputer = oArgs(2)
set oDiscoveryData = oAPI.CreateDiscoveryData(0, SourceId, ManagedEntityId)
Dim bDisableTN3Monitoring, bDisableTN5Monitoring, bDisablePrintMonitoring, bDisableHIPMonitoring, bDisableLU62ResyncMonitoring, bDisableIPResyncMonitoring
Dim bDisableSIMonitoring, bDisableMIMonitoring, bDisableDIMonitoring, bDisableWIPMonitoring
bDisableTN3Monitoring = FALSE
bDisableTN5Monitoring = FALSE
bDisablePrintMonitoring = FALSE
bDisableHIPMonitoring = FALSE
bDisableLU62ResyncMonitoring = FALSE
bDisableIPResyncMonitoring = FALSE
bDisableSIMonitoring = FALSE
bDisableMIMonitoring = FALSE
bDisableDIMonitoring = FALSE
bDisableWIPMonitoring = FALSE
GetRegParams()
DataDiscovery()
call oAPI.Return(oDiscoveryData)
Sub GetRegParams()
' Sub GetRegParams()
' Performs all registry lookups required for service discovery.
Const WMI_REG_HKLM = &H80000002
Const HIS_OPTOUT_KEYPATH = "SOFTWARE\Microsoft\SNA Server\CurrentVersion\Monitoring\"
Const HIS_TN3_OPTOUT_KEY = "DisableTN3270Monitoring"
Const HIS_TN5_OPTOUT_KEY = "DisableTN5250Monitoring"
Const HIS_PRINT_OPTOUT_KEY = "DisablePrintMonitoring"
Const HIS_HIP_OPTOUT_KEY = "DisableHIPMonitoring"
Const HIS_LU62RESYNC_OPTOUT_KEY = "DisableLU62ResyncMonitoring"
Const HIS_IPRESYNC_OPTOUT_KEY = "DisableIPResyncMonitoring"
Const HIS_SI_OPTOUT_KEY = "DisableSessionIntegratorMonitoring"
Const HIS_DI_OPTOUT_KEY = "DisableDataIntegrationMonitoring"
Const HIS_MI_OPTOUT_KEY = "DisableMessageIntegrationMonitoring"
Const HIS_WIP_OPTOUT_KEY = "DisableWIPMonitoring"
Const HIS_SNA_CONFIG_KEYPATH = "SOFTWARE\Microsoft\Host Integration Server\ConfigFramework\ConfiguredFeatures"
Const HIS_SNA_SERVICE_KEY = "SNA_SERVICE"
Const HIS_SNA_APPLICATION_SUPPORT_KEY = "SNA_APPLICATION_SUPPORT"
Dim oRegProvider
Dim intReturn
Dim colValues, strValue
Dim colTypes
' =============================================================
' Check for the possible set of monitoring opt-out keys, and for each that exists
' set the corresponding boolean variable to TRUE
Set oRegProvider = GetObject("winmgmts:\\" & TargetComputer & "\root\default:StdRegProv")
intReturn = oRegProvider.EnumValues(WMI_REG_HKLM, HIS_OPTOUT_KEYPATH, colValues, colTypes)
If intReturn = 0 And Not (IsNull(colValues)) Then
For Each strValue In colValues
Select Case strValue
Case HIS_TN3_OPTOUT_KEY
bDisableTN3Monitoring = True
'ScriptContext.Echo (strIndent2 & strValue)
Case HIS_TN5_OPTOUT_KEY
bDisableTN5Monitoring = True
'ScriptContext.Echo (strIndent2 & strValue)
Case HIS_PRINT_OPTOUT_KEY
bDisablePrintMonitoring = True
'ScriptContext.Echo (strIndent2 & strValue)
Case HIS_HIP_OPTOUT_KEY
bDisableHIPMonitoring = True
'ScriptContext.Echo (strIndent2 & strValue)
Case HIS_LU62RESYNC_OPTOUT_KEY
bDisableLU62ResyncMonitoring = True
'ScriptContext.Echo (strIndent2 & strValue)
Case HIS_IPRESYNC_OPTOUT_KEY
bDisableIPResyncMonitoring = True
'ScriptContext.Echo (strIndent2 & strValue)
Case HIS_SI_OPTOUT_KEY
bDisableSIMonitoring = True
'ScriptContext.Echo (strIndent2 & strValue)
Case HIS_MI_OPTOUT_KEY
bDisableMIMonitoring = True
'ScriptContext.Echo (strIndent2 & strValue)
Case HIS_DI_OPTOUT_KEY
bDisableDIMonitoring = True
'ScriptContext.Echo (strIndent2 & strValue)
Case HIS_WIP_OPTOUT_KEY
bDisableWIPMonitoring = True
'ScriptContext.Echo (strIndent2 & strValue)
End Select
Next
End If
End Sub 'GetRegParams
Sub DataDiscovery()
CONST HIS_DI_FEATURE = "DATA_DB2"
Dim intData
intData = 0
If NOT bDisableDIMonitoring Then
' =============================================================
' Check for MSI feature installed
intData = FindFeature(HIS_DI_FEATURE)
if NOT intData = 0 then
set oInst = oDiscoveryData.CreateClassInstance("$MPElement[Name='Microsoft.HostIntegrationServer.2009.DataInt']$")
call oInst.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", TargetComputer)
call oInst.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", "Data Integration")
call oDiscoveryData.AddInstance(oInst)
end if
End If
End Sub 'DataDiscovery
Function FindFeature(strFeatureName)
' Query MSI to determine if the specified HIS feature name is installed or advertised.
' Return 1 if true, 0 if false
'
CONST HIS_V8_PRODUCT_CODE = "{2D281577-9214-4549-B14A-2562BB6E44BB}"
CONST INSTALLSTATE_LOCAL = 3
dim installer, feature, features, state
set installer = CreateObject("WindowsInstaller.Installer")
set features = installer.Features(HIS_V8_PRODUCT_CODE)
On Error Resume Next
for each feature in features
if feature = strFeatureName then
state = installer.FeatureState(HIS_V8_PRODUCT_CODE, feature)
if state = INSTALLSTATE_LOCAL then
FindFeature = 1
else
FindFeature = 0
end if
Exit Function
end if
next
FindFeature = 0
Exit Function
End function 'FindFeature
</Script> </ScriptBody>
<TimeoutSeconds>360</TimeoutSeconds>
</DataSource>
</Discovery>