Message Integration Discovery

Microsoft.HostIntegrationServer.2009.MessageIntDiscovery (Discovery)

Discovers the Message Integration feature

Knowledge Base article:

Summary

The Message Integration discovery checks the registry location "HKLM\SOFTWARE\Microsoft\ SNA Server\CurrentVersion\Monitoring\" for the existence of the “Opt-Out” key DisableMessageIntegrationMonitoring. If the key exists, no further action is taken. If the key does not exist, the Host Integration Server 2009 Management Pack queries MSI to verity that the feature MQ_CONNECTORS has been installed. If the feature is installed, the Host Integration Server 2009 Management Pack creates an instance of the MsgInt class.

Element properties:

TargetMicrosoft.HostIntegrationServer.2009.HISInstallations
EnabledTrue
Frequency43215
RemotableFalse

Object Discovery Details:

Discovered Classes and their attribuets:

Member Modules:

ID Module Type TypeId RunAs 
DS DataSource Microsoft.Windows.TimedScript.DiscoveryProvider Default

Source Code:

<Discovery ID="Microsoft.HostIntegrationServer.2009.MessageIntDiscovery" Enabled="true" Target="Microsoft.HostIntegrationServer.2009.HISInstallations" ConfirmDelivery="false" Remotable="true" Priority="Normal">
<Category>Discovery</Category>
<DiscoveryTypes>
<DiscoveryClass TypeID="Microsoft.HostIntegrationServer.2009.MsgInt">
<Property TypeID="System!System.Entity" PropertyID="DisplayName"/>
</DiscoveryClass>
</DiscoveryTypes>
<DataSource ID="DS" TypeID="Windows!Microsoft.Windows.TimedScript.DiscoveryProvider">
<IntervalSeconds>43215</IntervalSeconds>
<SyncTime/>
<ScriptName>HIS2009 MsgInt Discovery.vbs</ScriptName>
<Arguments>$MPElement$ $Target/Id$ $Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$</Arguments>
<ScriptBody><Script>
'--------------------------------------------------------------------------------------------------
' &lt;name&gt;HIS2009 MsgInt Discovery.vbs&lt;/name&gt;
' &lt;company&gt;Microsoft Corporation&lt;/company&gt;
' &lt;copyright&gt;Copyright (c) Microsoft Corporation 2009&lt;/copyright&gt;
' &lt;summary&gt;
' Microsoft Host Integration Server 2009 MsgInt discovery script for use with SCOM 2007.
' Provides discovery functions for Host Integration Server 2009 MsgInt.
' &lt;/summary&gt;
'
' 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 &lt; 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()
MsgIntDiscovery()

call oAPI.Return(oDiscoveryData)

Sub GetRegParams()

' Sub GetRegParams()
' Performs all registry lookups required for service discovery.

Const WMI_REG_HKLM = &amp;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:\\" &amp; TargetComputer &amp; "\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 &amp; strValue)

Case HIS_TN5_OPTOUT_KEY
bDisableTN5Monitoring = True
'ScriptContext.Echo (strIndent2 &amp; strValue)

Case HIS_PRINT_OPTOUT_KEY
bDisablePrintMonitoring = True
'ScriptContext.Echo (strIndent2 &amp; strValue)

Case HIS_HIP_OPTOUT_KEY
bDisableHIPMonitoring = True
'ScriptContext.Echo (strIndent2 &amp; strValue)

Case HIS_LU62RESYNC_OPTOUT_KEY
bDisableLU62ResyncMonitoring = True
'ScriptContext.Echo (strIndent2 &amp; strValue)

Case HIS_IPRESYNC_OPTOUT_KEY
bDisableIPResyncMonitoring = True
'ScriptContext.Echo (strIndent2 &amp; strValue)

Case HIS_SI_OPTOUT_KEY
bDisableSIMonitoring = True
'ScriptContext.Echo (strIndent2 &amp; strValue)

Case HIS_MI_OPTOUT_KEY
bDisableMIMonitoring = True
'ScriptContext.Echo (strIndent2 &amp; strValue)

Case HIS_DI_OPTOUT_KEY
bDisableDIMonitoring = True
'ScriptContext.Echo (strIndent2 &amp; strValue)

Case HIS_WIP_OPTOUT_KEY
bDisableWIPMonitoring = True
'ScriptContext.Echo (strIndent2 &amp; strValue)
End Select
Next
End If

End Sub 'GetRegParams


Sub MsgIntDiscovery()

CONST HIS_MI_PATTERN = "MQ_CONNECTORS"

Dim intMsgInt
intMsgInt = 0

If NOT bDisableMIMonitoring Then

' =============================================================
' Check for MSI feature installed

intMsgInt = FindFeature(HIS_MI_PATTERN)

if NOT intMsgInt = 0 then
set oInst = oDiscoveryData.CreateClassInstance("$MPElement[Name='Microsoft.HostIntegrationServer.2009.MsgInt']$")
call oInst.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", TargetComputer)
call oInst.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", "Message Integration")
call oDiscoveryData.AddInstance(oInst)
end if

End If

End Sub 'MsgIntDiscovery


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_V7_PRODUCT_CODE = "{0CDBAFE3-08E1-47DF-9E91-C86A540C9C08}"
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>