KnowledgeServices discovery

Microsoft.KnowledgeServices.AgentAndGateway.Discovery (Discovery)

Performs knowledge services agent and gateway discovery

Element properties:

TargetMicrosoft.Windows.Computer
EnabledTrue
RemotableFalse

Object Discovery Details:

Discovered Classes and their attribuets:
  • Microsoft.KnowledgeServices.Agent
    • Name
    • ArchivePeriod
    • BootstrapContentsChecked
    • ContentShare
    • DataRoot
    • GatewayID
    • GatewayServer
    • GatewayServicePort
    • LastStateCookie
    • LogLevel
    • MailboxShare
    • MaxCacheSize
    • MaxMailboxSize
    • UploadDay
    • UploadFrequency
    • UploadTimeHour
    • UploadTimeMin
    • Version
    • ManagementGroupCount
  • Microsoft.KnowledgeServices.Gateway
    • Name
    • AccessControlGroup
    • ArchivePeriod
    • CertificateThumbprint
    • ConfigWebServiceEndpoint
    • GatewayDataRoot
    • LogLevel
    • MaxMailboxSizePerAgent
    • PollingFreq
    • UploadDay
    • UploadFrequency
    • UploadTimeHour
    • UploadTimeMin
    • Version

Member Modules:

ID Module Type TypeId RunAs 
AdvisorDiscoveryScript DataSource Microsoft.KnowledgeServices.Library.ScheduledScriptDiscoveryEx Default

Source Code:

<Discovery ID="Microsoft.KnowledgeServices.AgentAndGateway.Discovery" Enabled="true" Target="Windows!Microsoft.Windows.Computer" ConfirmDelivery="false" Remotable="true" Priority="Normal">
<Category>Discovery</Category>
<DiscoveryTypes>
<DiscoveryClass TypeID="KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Agent">
<Property TypeID="KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Agent" PropertyID="Name"/>
<Property TypeID="KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Agent" PropertyID="ArchivePeriod"/>
<Property TypeID="KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Agent" PropertyID="BootstrapContentsChecked"/>
<Property TypeID="KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Agent" PropertyID="ContentShare"/>
<Property TypeID="KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Agent" PropertyID="DataRoot"/>
<Property TypeID="KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Agent" PropertyID="GatewayID"/>
<Property TypeID="KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Agent" PropertyID="GatewayServer"/>
<Property TypeID="KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Agent" PropertyID="GatewayServicePort"/>
<Property TypeID="KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Agent" PropertyID="LastStateCookie"/>
<Property TypeID="KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Agent" PropertyID="LogLevel"/>
<Property TypeID="KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Agent" PropertyID="MailboxShare"/>
<Property TypeID="KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Agent" PropertyID="MaxCacheSize"/>
<Property TypeID="KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Agent" PropertyID="MaxMailboxSize"/>
<Property TypeID="KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Agent" PropertyID="UploadDay"/>
<Property TypeID="KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Agent" PropertyID="UploadFrequency"/>
<Property TypeID="KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Agent" PropertyID="UploadTimeHour"/>
<Property TypeID="KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Agent" PropertyID="UploadTimeMin"/>
<Property TypeID="KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Agent" PropertyID="Version"/>
<Property TypeID="KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Agent" PropertyID="ManagementGroupCount"/>
</DiscoveryClass>
<DiscoveryClass TypeID="KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Gateway">
<Property TypeID="KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Gateway" PropertyID="Name"/>
<Property TypeID="KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Gateway" PropertyID="AccessControlGroup"/>
<Property TypeID="KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Gateway" PropertyID="ArchivePeriod"/>
<Property TypeID="KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Gateway" PropertyID="CertificateThumbprint"/>
<Property TypeID="KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Gateway" PropertyID="ConfigWebServiceEndpoint"/>
<Property TypeID="KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Gateway" PropertyID="GatewayDataRoot"/>
<Property TypeID="KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Gateway" PropertyID="LogLevel"/>
<Property TypeID="KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Gateway" PropertyID="MaxMailboxSizePerAgent"/>
<Property TypeID="KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Gateway" PropertyID="PollingFreq"/>
<Property TypeID="KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Gateway" PropertyID="UploadDay"/>
<Property TypeID="KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Gateway" PropertyID="UploadFrequency"/>
<Property TypeID="KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Gateway" PropertyID="UploadTimeHour"/>
<Property TypeID="KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Gateway" PropertyID="UploadTimeMin"/>
<Property TypeID="KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Gateway" PropertyID="Version"/>
</DiscoveryClass>
</DiscoveryTypes>
<DataSource ID="AdvisorDiscoveryScript" TypeID="KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Library.ScheduledScriptDiscoveryEx">
<ScriptName>DiscoverKnowledgeServicesAgentAndGateway.vbs</ScriptName>
<Arguments>$MPElement$ $Target/Id$ $Target/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$</Arguments>
<ScriptBody><Script>
'#Include File:DiscoverKnowledgeServicesAgentAndGateway.vbs
'Copyright (c) Microsoft Corporation. All rights reserved.
' Parameters that should be passed to this script
' 0 MPElement ID ($MPElement$)
' 1 Target Id for ME this rule is running against ($Target/Id$)
' 2 Computer FQDN

Option Explicit
SetLocale("en-us")

Dim oArgs
Set oArgs = WScript.Arguments
if oArgs.Count &lt; 3 Then
Wscript.Quit -1
End If

Dim SourceID, ManagedEntityId, TargetComputerID
SourceId = oArgs(0)
ManagedEntityId = oArgs(1)
TargetComputerID = oArgs(2)

Dim oAPI, oDiscoveryData, oDiscoveryInst
Set oAPI = CreateObject("MOM.ScriptAPI")
Set oDiscoveryData = oAPI.CreateDiscoveryData(0, SourceId, ManagedEntityId)

'Call oAPI.LogScriptEvent("Win Discovery", 5012, 2, "DiscoveryExtendedWindowsProperties.vbs started")

Dim oReg, arrValueNames, arrValueTypes, retValue
Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")

Const HKEY_LOCAL_MACHINE = &amp;H80000002
Const AgentRegPath = "SOFTWARE\Microsoft\SystemCenterAdvisor\Agent"
Const GatewayRegPath = "SOFTWARE\Microsoft\SystemCenterAdvisor\Gateway"

' Discover Agent
retValue = oReg.EnumValues(HKEY_LOCAL_MACHINE, AgentRegPath, arrValueNames, arrValueTypes)
If retValue = 0 Then
Set oDiscoveryInst = oDiscoveryData.CreateClassInstance("$MPElement[Name='KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Agent']$")

Call oDiscoveryInst.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", TargetComputerID)
Call oDiscoveryInst.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", TargetComputerID)
Call oDiscoveryInst.AddProperty("$MPElement[Name='KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Agent']/Name$", TargetComputerID)

' We can skip over the reg keys that dont exist.
On Error Resume Next

Call oDiscoveryInst.AddProperty("$MPElement[Name='KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Agent']/ArchivePeriod$", GetDWORDValue(AgentRegPath, "ArchivePeriod"))
Call oDiscoveryInst.AddProperty("$MPElement[Name='KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Agent']/BootstrapContentsChecked$", GetDWORDValue(AgentRegPath, "BootstrapContentsChecked"))
Call oDiscoveryInst.AddProperty("$MPElement[Name='KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Agent']/ContentShare$", GetStringValue(AgentRegPath, "ContentShare"))
Call oDiscoveryInst.AddProperty("$MPElement[Name='KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Agent']/DataRoot$", GetStringValue(AgentRegPath, "DataRoot"))
Call oDiscoveryInst.AddProperty("$MPElement[Name='KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Agent']/GatewayID$", GetStringValue(AgentRegPath, "GatewayID"))
Call oDiscoveryInst.AddProperty("$MPElement[Name='KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Agent']/GatewayServer$", GetStringValue(AgentRegPath, "GatewayServer"))
Call oDiscoveryInst.AddProperty("$MPElement[Name='KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Agent']/GatewayServicePort$", GetDWORDValue(AgentRegPath, "GatewayServicePort"))
Call oDiscoveryInst.AddProperty("$MPElement[Name='KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Agent']/LastStateCookie$", GetStringValue(AgentRegPath, "LastStateCookie"))
Call oDiscoveryInst.AddProperty("$MPElement[Name='KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Agent']/LogLevel$", GetDWORDValue(AgentRegPath, "LogLevel"))
Call oDiscoveryInst.AddProperty("$MPElement[Name='KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Agent']/MailboxShare$", GetStringValue(AgentRegPath, "MailboxShare"))
Call oDiscoveryInst.AddProperty("$MPElement[Name='KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Agent']/MaxCacheSize$", GetDWORDValue(AgentRegPath, "MaxCacheSize"))
Call oDiscoveryInst.AddProperty("$MPElement[Name='KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Agent']/MaxMailboxSize$", GetDWORDValue(AgentRegPath, "MaxMailboxSize"))
Call oDiscoveryInst.AddProperty("$MPElement[Name='KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Agent']/UploadDay$", GetDWORDValue(AgentRegPath, "UploadDay"))
Call oDiscoveryInst.AddProperty("$MPElement[Name='KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Agent']/UploadFrequency$", GetDWORDValue(AgentRegPath, "UploadFrequency"))
Call oDiscoveryInst.AddProperty("$MPElement[Name='KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Agent']/UploadTimeHour$", GetDWORDValue(AgentRegPath, "UploadTimeHour"))
Call oDiscoveryInst.AddProperty("$MPElement[Name='KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Agent']/UploadTimeMin$", GetDWORDValue(AgentRegPath, "UploadTimeMin"))
Call oDiscoveryInst.AddProperty("$MPElement[Name='KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Agent']/Version$", GetStringValue(AgentRegPath, "Version"))

On Error Goto 0

' Get the ManagementGroup count
Const AgentManagmentGroupPath = "SOFTWARE\Microsoft\Microsoft Operations Manager\3.0\Agent Management Groups"

Dim returnValue, arrSubKeys, ManagementGroupCount
returnValue = oReg.EnumKey(HKEY_LOCAL_MACHINE, AgentManagmentGroupPath, arrSubKeys)

If returnValue = 0 Then
ManagementGroupCount = 0
If IsNull(arrSubKeys) = false Then
ManagementGroupCount = UBound(arrSubKeys) + 1
End If

Call oDiscoveryInst.AddProperty("$MPElement[Name='KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Agent']/ManagementGroupCount$", ManagementGroupCount)
End If

Call oDiscoveryData.AddInstance(oDiscoveryInst)
End If

' Discover Gateway
retValue = oReg.EnumValues(HKEY_LOCAL_MACHINE, GatewayRegPath, arrValueNames, arrValueTypes)
If retValue = 0 Then
Set oDiscoveryInst = oDiscoveryData.CreateClassInstance("$MPElement[Name='KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Gateway']$")

Call oDiscoveryInst.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", TargetComputerID)
Call oDiscoveryInst.AddProperty("$MPElement[Name='System!System.Entity']/DisplayName$", TargetComputerID)
Call oDiscoveryInst.AddProperty("$MPElement[Name='KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Gateway']/Name$", TargetComputerID)

' We can skip over the reg keys that dont exist.
On Error Resume Next

Call oDiscoveryInst.AddProperty("$MPElement[Name='KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Gateway']/AccessControlGroup$", GetStringValue(GatewayRegPath, "AccessControlGroup"))
Call oDiscoveryInst.AddProperty("$MPElement[Name='KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Gateway']/ArchivePeriod$", GetDWORDValue(GatewayRegPath, "ArchivePeriod"))
Call oDiscoveryInst.AddProperty("$MPElement[Name='KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Gateway']/CertificateThumbprint$", GetStringValue(GatewayRegPath, "CertificateThumbprint"))
Call oDiscoveryInst.AddProperty("$MPElement[Name='KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Gateway']/ConfigWebServiceEndpoint$", GetStringValue(GatewayRegPath, "ConfigWebServiceEndpoint"))
Call oDiscoveryInst.AddProperty("$MPElement[Name='KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Gateway']/GatewayDataRoot$", GetStringValue(GatewayRegPath, "GatewayDataRoot"))
Call oDiscoveryInst.AddProperty("$MPElement[Name='KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Gateway']/LogLevel$", GetDWORDValue(GatewayRegPath, "LogLevel"))
Call oDiscoveryInst.AddProperty("$MPElement[Name='KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Gateway']/MaxMailboxSizePerAgent$", GetDWORDValue(GatewayRegPath, "MaxMailboxSizePerAgent"))
Call oDiscoveryInst.AddProperty("$MPElement[Name='KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Gateway']/PollingFreq$", GetDWORDValue(GatewayRegPath, "PollingFreq"))
Call oDiscoveryInst.AddProperty("$MPElement[Name='KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Gateway']/UploadDay$", GetDWORDValue(GatewayRegPath, "UploadDay"))
Call oDiscoveryInst.AddProperty("$MPElement[Name='KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Gateway']/UploadFrequency$", GetDWORDValue(GatewayRegPath, "UploadFrequency"))
Call oDiscoveryInst.AddProperty("$MPElement[Name='KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Gateway']/UploadTimeHour$", GetDWORDValue(GatewayRegPath, "UploadTimeHour"))
Call oDiscoveryInst.AddProperty("$MPElement[Name='KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Gateway']/UploadTimeMin$", GetDWORDValue(GatewayRegPath, "UploadTimeMin"))
Call oDiscoveryInst.AddProperty("$MPElement[Name='KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Gateway']/Version$", GetStringValue(GatewayRegPath, "Version"))

On Error Goto 0
Call oDiscoveryData.AddInstance(oDiscoveryInst)
End If

Call oAPI.Return(oDiscoveryData)
WScript.Quit()

Function GetDWORDValue(RegPath, Property)
Dim dwValue
Call oReg.GetDWORDValue(HKEY_LOCAL_MACHINE, RegPath, Property, dwValue)
GetDWORDValue = dwValue
End Function

Function GetStringValue(RegPath, Property)
Dim szValue
Call oReg.GetStringValue(HKEY_LOCAL_MACHINE, RegPath, Property, szValue)
GetStringValue = szValue
End Function
</Script></ScriptBody>
<TimeoutSeconds>300</TimeoutSeconds>
<IntervalInSeconds>86309</IntervalInSeconds>
</DataSource>
</Discovery>