DatabaseEngineDiscovery

Microsoft.KnowledgeServices.SQLServer.Library.DatabaseEngineDiscovery (Discovery)

knowledge service database engine discovery

Element properties:

TargetMicrosoft.SQLServer.DBEngine
EnabledTrue
RemotableFalse

Object Discovery Details:

Discovered Classes and their attribuets:
  • Microsoft.KnowledgeServices.SQLServer.DBEngine
    • ProductVersion
    • MajorVersion
    • MinorVersion
    • BuildNumber
    • BuildRevisionNumber
    • NtoskrnlVersion
    • NtoskrnlMajor
    • NtoskrnlMinor
    • NtoskrnlBuild
    • NtoskrnlRevision
    • Platform
    • BuildClrVersion
    • Collation
    • ComparisonStyle
    • ComputerNamePhysicalNetBIOS
    • EngineEdition
    • IsClustered
    • IsFullTextInstalled
    • IsIntegratedSecurityOnly
    • IsSingleUser
    • LCID
    • NumLicenses
    • ProcessID
    • ProductLevel
    • ResourceLastUpdateDateTime
    • SqlCharSetName
    • SqlSortOrderName
    • FilestreamShareName
    • FilestreamConfiguredLevel
    • FilestreamEffectiveLevel
    • InstanceId
    • TraceFlagsEnabled
    • ManagementPackVersion
    • AffinityMaskUncommittedValue
    • Affinity64MaskUncommittedValue
    • AffinityMask
    • AffinityIOMask
    • Affinity64IOMask
    • AffinityIOMaskUncommittedValue
    • Affinity64IOMaskUncommittedValue
    • Affinity64Mask
    • RecoveryInterval
    • AllowUpdates
    • UserConnections
    • Locks
    • OpenObjects
    • FillFactor
    • DisallowResultsFromTriggers
    • NestedTriggers
    • ServerTriggerRecursionEnabled
    • RemoteAccess
    • DefaultLanguage
    • CrossDBOwnershipChaining
    • MaxWorkerThreads
    • NetworkPacketSize
    • NetworkPacketSizeUncommittedValue
    • ShowAdvancedOptions
    • RemoteProcTrans
    • C2AuditMode
    • DefaultFullTextLanguage
    • TwoDigitYearCutoff
    • IndexCreateMemory
    • PriorityBoost
    • RemoteLoginTimeout
    • RemoteQueryTimeout
    • CursorThreshold
    • SetWorkingSetSize
    • UserOptions
    • ReplicationMaxTextSize
    • MediaRetention
    • CostThresholdForParallelism
    • MaxDegreeOfParallelism
    • MinMemoryPerQuery
    • QueryWait
    • MinServerMemory
    • MaxServerMemory
    • QueryGovernorCostLimit
    • LightweightPooling
    • ScanForStartupProcedures
    • AweEnabled
    • TransformNoiseWords
    • PrecomputeRank
    • ProtocolHandlerTimeout
    • IsSqlClrEnabled
    • IsSqlClrLoaded
    • MemoryReserveSize
    • FullTextCrawlRangeMax
    • FullTextNotifyBandwidthMin
    • FullTextNotifyBandwidthMax
    • FullTextCrawlBandwidthMin
    • FullTextCrawlBandwidthMax
    • DefaultTraceEnabled
    • BlockedProcessThreshold
    • InDoubtTransactionResolution
    • RemoteAdminConnections
    • CommonCriteriaComplianceEnabled
    • ExtensibleKeyManagementEnabled
    • DefaultBackupCompression
    • FilestreamAccessLevel
    • OptimizeForAdHocWorkloads
    • AccessCheckCacheBucketCount
    • AccessCheckCacheQuota
    • AgentXPsEnabled
    • SqlMailXPsEnabled
    • DatabaseMailEnabled
    • SmoAndDmoXPsEnabled
    • OleAutomationProceduresEnabled
    • XPCmdShellEnabled
    • AdHocDistributedQueriesEnabled
    • ReplicationXPsEnabled
    • MaxWorkersCount
    • SqlServerStartTime
    • StartupParameters
    • SqlProtocols
    • LinkedServersCount
    • SQLMemoryModel
    • MaxWorkersConfig
    • SchedulerCount
    • ProcessorGroupsTotal
    • NumaNodesTotal
    • NumaNodesUsed

Member Modules:

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

Source Code:

<Discovery ID="Microsoft.KnowledgeServices.SQLServer.Library.DatabaseEngineDiscovery" Enabled="true" Target="SQL!Microsoft.SQLServer.DBEngine" ConfirmDelivery="false" Remotable="true" Priority="Normal">
<Category>Discovery</Category>
<DiscoveryTypes>
<DiscoveryClass TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine">
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="ProductVersion"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="MajorVersion"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="MinorVersion"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="BuildNumber"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="BuildRevisionNumber"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="NtoskrnlVersion"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="NtoskrnlMajor"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="NtoskrnlMinor"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="NtoskrnlBuild"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="NtoskrnlRevision"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="Platform"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="BuildClrVersion"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="Collation"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="ComparisonStyle"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="ComputerNamePhysicalNetBIOS"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="EngineEdition"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="IsClustered"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="IsFullTextInstalled"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="IsIntegratedSecurityOnly"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="IsSingleUser"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="LCID"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="NumLicenses"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="ProcessID"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="ProductLevel"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="ResourceLastUpdateDateTime"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="SqlCharSetName"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="SqlSortOrderName"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="FilestreamShareName"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="FilestreamConfiguredLevel"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="FilestreamEffectiveLevel"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="InstanceId"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="TraceFlagsEnabled"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="ManagementPackVersion"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="AffinityMaskUncommittedValue"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="Affinity64MaskUncommittedValue"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="AffinityMask"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="AffinityIOMask"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="Affinity64IOMask"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="AffinityIOMaskUncommittedValue"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="Affinity64IOMaskUncommittedValue"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="Affinity64Mask"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="RecoveryInterval"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="AllowUpdates"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="UserConnections"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="Locks"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="OpenObjects"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="FillFactor"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="DisallowResultsFromTriggers"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="NestedTriggers"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="ServerTriggerRecursionEnabled"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="RemoteAccess"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="DefaultLanguage"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="CrossDBOwnershipChaining"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="MaxWorkerThreads"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="NetworkPacketSize"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="NetworkPacketSizeUncommittedValue"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="ShowAdvancedOptions"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="RemoteProcTrans"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="C2AuditMode"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="DefaultFullTextLanguage"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="TwoDigitYearCutoff"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="IndexCreateMemory"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="PriorityBoost"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="RemoteLoginTimeout"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="RemoteQueryTimeout"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="CursorThreshold"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="SetWorkingSetSize"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="UserOptions"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="ReplicationMaxTextSize"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="MediaRetention"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="CostThresholdForParallelism"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="MaxDegreeOfParallelism"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="MinMemoryPerQuery"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="QueryWait"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="MinServerMemory"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="MaxServerMemory"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="QueryGovernorCostLimit"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="LightweightPooling"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="ScanForStartupProcedures"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="AweEnabled"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="TransformNoiseWords"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="PrecomputeRank"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="ProtocolHandlerTimeout"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="IsSqlClrEnabled"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="IsSqlClrLoaded"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="MemoryReserveSize"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="FullTextCrawlRangeMax"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="FullTextNotifyBandwidthMin"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="FullTextNotifyBandwidthMax"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="FullTextCrawlBandwidthMin"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="FullTextCrawlBandwidthMax"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="DefaultTraceEnabled"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="BlockedProcessThreshold"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="InDoubtTransactionResolution"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="RemoteAdminConnections"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="CommonCriteriaComplianceEnabled"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="ExtensibleKeyManagementEnabled"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="DefaultBackupCompression"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="FilestreamAccessLevel"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="OptimizeForAdHocWorkloads"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="AccessCheckCacheBucketCount"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="AccessCheckCacheQuota"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="AgentXPsEnabled"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="SqlMailXPsEnabled"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="DatabaseMailEnabled"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="SmoAndDmoXPsEnabled"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="OleAutomationProceduresEnabled"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="XPCmdShellEnabled"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="AdHocDistributedQueriesEnabled"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="ReplicationXPsEnabled"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="MaxWorkersCount"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="SqlServerStartTime"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="StartupParameters"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="SqlProtocols"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="LinkedServersCount"/>
<!--BEGIN : Edited by ericzha-->
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="SQLMemoryModel"/>
<!--END : Edited by ericzha-->
<!--BEGIN : Edited by v-jobzha-->
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="MaxWorkersConfig"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="SchedulerCount"/>
<!--END : Edited by v-jobzha-->
<!--BEGIN : Edited by v-taliu-->
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="ProcessorGroupsTotal"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="NumaNodesTotal"/>
<Property TypeID="KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine" PropertyID="NumaNodesUsed"/>
<!--END : Edited by v-taliu-->
</DiscoveryClass>
</DiscoveryTypes>
<DataSource ID="DBEngineDiscoveryScript" TypeID="KnowledgeServicesLibrary!Microsoft.KnowledgeServices.Library.ScheduledScriptDiscoveryEx">
<ScriptName>DiscoveryKnowledgeDBEngine.vbs</ScriptName>
<Arguments>$MPElement$ $Target/Id$ $Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/PrincipalName$ $Target/Property[Type="SQL!Microsoft.SQLServer.ServerRole"]/InstanceName$ $Target/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ConnectionString$</Arguments>
<ScriptBody><Script>
'#Include File:DiscoveryKnowledgeDBEngine.vbs
'Copyright (c) Microsoft Corporation. All rights reserved.
' Parameters that should be passed to this script
' 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
' 3 SQL Instance that this rule is being run for
' 4 The SQL Instance Name

Option Explicit
Dim objFSO, strSystem32Folder
Dim strFileName, intMajor, lngMinor, lngBuild, lngRevision, strFileVersion

SetLocale("en-us")

Dim scriptStartTime
scriptStartTime = GetUTCNow()

Dim oArgs
Set oArgs = WScript.Arguments

if oArgs.Count &lt;&gt; 5 Then
WScript.Quit -1
End If

Dim SourceID, ManagedEntityId, PrincipalName, InstanceName, sqlInstance
SourceID = oArgs(0)
ManagedEntityId = oArgs(1)
PrincipalName = oArgs(2)
InstanceName = oArgs(3)
sqlInstance = oArgs(4)


Dim oAPI, oDiscoveryData, oInst
Set oAPI = CreateObject("MOM.ScriptAPI")
set oDiscoveryData = oAPI.CreateDiscoveryData(0, SourceID, ManagedEntityId)

set oInst = oDiscoveryData.CreateClassInstance("$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']$")
Call oInst.AddProperty("$MPElement[Name='Windows!Microsoft.Windows.Computer']/PrincipalName$", PrincipalName)
Call oInst.AddProperty("$MPElement[Name='SQL!Microsoft.SQLServer.ServerRole']/InstanceName$", InstanceName)

'Phase 1 Discovering information from the xp_msver table.. i.e. Platform
Dim dbPlatform
dbPlatform = DiscoverPlatform

'Phase 2, discovery information from SERVERPROPERTY sproc
Call DiscoverServerProperties()

'Phase 3, discovery instance id from registry
Call DiscoverInstanceId(dbPlatform, InstanceName)

'Phase 4, discover trace flags
Call DiscoverTraceFlags()

'Phase 5, discover is CLR is loaded to SQL Server instance
Call DiscoverIsSqlClrLoaded()

'Phase 6, record the time
' NOTE: Temp workaround - We should update the Version Number below everytime we rev the MP Version.
dim mpVersion
mpVersion = "1.0.49.0"
oInst.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/ManagementPackVersion$", mpVersion

'Begin: Edited by v-jobzha
'Phase 7, discover Max Workers Config
Call DiscoverMaxWorkersConfig()

'Phase 8, discover Scheduler Count
Call DiscoverSchedulerCount()
'End: Edited by v-jobzha

'Begin: Edited by v-taliu
'Phase 9, Discovers the NUMA Nodes Total,Numa Nodes Used
Call DiscoverNUMANodesInfo()

'Phase 10, Discovers the Processor Groups
Call DiscoverProcessorGroupsInfo()
'End: Edited by v-taliu

'Finally add our discovery instance
call oDiscoveryData.AddInstance(oInst)
Call oAPI.Return(oDiscoveryData)
WScript.Quit

'Begin: Edited by v-jobzha
'---------------------------------------------------------------------------
'Discovers the max workers config are AUTOMATIC/MANUAL
'---------------------------------------------------------------------------
Sub DiscoverMaxWorkersConfig()
Dim connString
connString = "Provider=SQLOLEDB;Data Source=" + sqlInstance + "; Initial Catalog=master;Integrated Security=SSPI"

Dim oConnection
Set oConnection = CreateObject("ADODB.Connection")
oConnection.Open connString

Dim query
query = "SELECT [value_in_use] FROM sys.configurations WHERE [name] = N'max worker threads'"

Dim oResults
Set oResults = oConnection.Execute(query)

Dim strMaxWorkersConfig,intMaxWorkersConfig

If (oResults.State = 1) Then
intMaxWorkersConfig = CDbl(oResults("value_in_use"))
If intMaxWorkersConfig = 0 Then
strMaxWorkersConfig = "AUTOMATIC"
ElseIf intMaxWorkersConfig &gt; 0 Then
strMaxWorkersConfig = "MANUAL"
End If
End If

oResults.Close()
oConnection.Close()

Call AddPropertyIfNotNull(oInst, "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/MaxWorkersConfig$", strMaxWorkersConfig)
End Sub

'---------------------------------------------------------------------------
'Discovers the Scheduler Count value
'---------------------------------------------------------------------------
Sub DiscoverSchedulerCount()
Dim connString
connString = "Provider=SQLOLEDB;Data Source=" + sqlInstance + "; Initial Catalog=master;Integrated Security=SSPI"

Dim oConnection
Set oConnection = CreateObject("ADODB.Connection")
oConnection.Open connString

Dim query
query = "SELECT [scheduler_count] FROM sys.dm_os_sys_info"

Dim oResults
Set oResults = oConnection.Execute(query)

Dim intSchedulerCount

If (oResults.State = 1) Then
intSchedulerCount = CDbl(oResults("scheduler_count"))
End If

oResults.Close()
oConnection.Close()

Call AddPropertyIfNotNull(oInst, "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/SchedulerCount$", intSchedulerCount)
End Sub
'End: Edited by v-jobzha


'Begin: Edited by v-taliu
'---------------------------------------------------------------------------
'Discovers the NUMA Nodes Total,Numa Nodes Used
'---------------------------------------------------------------------------
Sub DiscoverNUMANodesInfo()
Dim connString
connString = "Provider=SQLOLEDB;Data Source=" + sqlInstance + "; Initial Catalog=master;Integrated Security=SSPI"

Dim oConnection
Set oConnection = CreateObject("ADODB.Connection")
oConnection.Open connString

Dim query
Dim oResults
Dim arrResults

query ="select count(node_id) as count from sys.dm_os_nodes where node_state_desc &lt;&gt; N'ONLINE DAC' union all select count(node_id) from sys.dm_os_nodes where node_state_desc NOT IN ( N'OFFLINE', N'ONLINE DAC')"
Set oResults = oConnection.Execute(query)
If Not oResults.EOF Then
arrResults= oResults.GetRows()
End If

Call AddPropertyIfNotNull(oInst, "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/NumaNodesTotal$", CInt(arrResults(0,0)))
Call AddPropertyIfNotNull(oInst, "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/NumaNodesUsed$", CInt(arrResults(0,1)))

Set oResults = Nothing
Set arrResults = Nothing
oConnection.Close()
End Sub

'---------------------------------------------------------------------------
'Discovers the Processor Groups
'---------------------------------------------------------------------------
Sub DiscoverProcessorGroupsInfo()
Dim connString
connString = "Provider=SQLOLEDB;Data Source=" + sqlInstance + "; Initial Catalog=master;Integrated Security=SSPI"

Dim oConnection
Set oConnection = CreateObject("ADODB.Connection")
oConnection.Open connString

Dim query
Dim rowCount
Dim oResults

query = "select count(name) from syscolumns where id = OBJECT_ID('sys.dm_os_nodes') and name = 'processor_group'"
Set oResults = oConnection.Execute(query)
If Not oResults.EOF Then
rowCount = oResults(0)
End If

If rowCount = 1 Then
query = "select count(distinct processor_group) from sys.dm_os_nodes"
Set oResults = oConnection.Execute(query)
If Not oResults.EOF Then
Call AddPropertyIfNotNull(oInst, "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/ProcessorGroupsTotal$", CInt(oResults(0)))
End If
End If

Set oResults = Nothing
oConnection.Close()
End Sub

'End: Edited by v-taliu


'---------------------------------------------------------------------------
'Discovers the list of trace flags that are enabled.
'---------------------------------------------------------------------------
Sub DiscoverTraceFlags()
Dim connString
connString = "Provider=SQLOLEDB;Data Source=" + sqlInstance + "; Initial Catalog=master;Integrated Security=SSPI"

Dim oConnection
Set oConnection = CreateObject("ADODB.Connection")
oConnection.Open connString

Dim query
query = "DBCC TRACESTATUS ( -1 )"

Dim oResults
Set oResults = oConnection.Execute(query)

Dim traceFlags
' Check if the recordset is open. DBCC doesnt return a recordset if there are no results.
' State = 1 (adStateOpen) indicates that the recordset is open.
If (oResults.State = 1) Then
Do While NOT oResults.EOF
If (oResults("Status") = "1") AND (oResults("Global") = "1") Then
If NOT IsEmpty(traceFlags) Then
traceFlags = traceFlags &amp; ", "
End If
traceFlags = traceFlags &amp; oResults("TraceFlag")
End If
oResults.MoveNext
Loop
End If

'The following lines were modified by ericzha for new config point SQLMemoryModel
Dim SQLMemoryModel, int1, int2, colSum
SQLMemoryModel = "CONVENTIONAL"

query = "select large_page_allocations_kb, locked_page_allocations_kb from sys.dm_os_process_memory"
Set oResults = oConnection.Execute(query)
int1 = CCur(oResults("large_page_allocations_kb"))
int2 = CCur(oResults("locked_page_allocations_kb"))
colSum = int1 + int2

If int1 &gt;0 And InStr(1, traceFlags, "834", 1) &gt;0 Then
SQLMemoryModel = "LARGE_PAGES"
ElseIf int2 &gt;0 And InStr(1, traceFlags, "834", 1) = 0 Then
SQLMemoryModel = "LOCKED_PAGES"
End If

Call AddPropertyIfNotNull(oInst, "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/SQLMemoryModel$", SQLMemoryModel)
'End of modification by ericzha

Call AddPropertyIfNotNull(oInst, "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/TraceFlagsEnabled$", traceFlags)
End Sub

'--------------------------------------------------------------------------------------------
' Check if .NET CLR is loaded to SQL Server instance
'--------------------------------------------------------------------------------------------
Sub DiscoverIsSqlClrLoaded()
Dim connString
connString = "Provider=SQLOLEDB;Data Source=" + sqlInstance + "; Initial Catalog=master;Integrated Security=SSPI"

Dim clrLoaded
clrLoaded = False

Dim oConnection
Set oConnection = CreateObject("ADODB.Connection")
oConnection.Open(connString)

Dim query
query = "select COUNT(*) from sys.dm_os_loaded_modules where description like '%.NET Framework%'"

Dim oResults
Set oResults = oConnection.Execute(query)

If (oResults.State = 1) Then
Dim dotNetCount
If Not oResults.EOF Then
dotNetCount = oResults(0)
If (dotNetCount &gt; 0) Then
clrLoaded = True
End If
End If
End If

' Add new property to discovery
Call AddPropertyIfNotNull(oInst, "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/IsSqlClrLoaded$", clrLoaded)
End Sub

'--------------------------------------------------------------------------------------------
' Get the current value used for memory_to_reserve: [Current -g value]
'--------------------------------------------------------------------------------------------
Sub GetMemoryReserveSize(startupParameters)

Dim s ' Prepared string with startup parameters
s = LCase(";" + startupParameters)

Dim sizeRes
sizeRes = 256 ' Default value is 256

Dim memoryParam
memoryParam = InStr(s, ";-g")

If (memoryParam &gt; 0) Then
' Start and End position of memory reserver value
Dim startPos, endPos
startPos = memoryParam + 3
endPos = InStr(startPos, s, ";")

If Not (endPos &gt; 0) Then endPos = Len(s) + 1

Dim size
size = Mid(s, startPos, (endPos - startPos))

If (Not IsNull(size)) And IsNumeric(size) Then
sizeRes = CInt(size)
End If
End If

'Add property to Discovery Data
Call AddPropertyIfNotNull(oInst, "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/MemoryReserveSize$", sizeRes)
End Sub

'---------------------------------------------------------------------------
'Add a property to the discovery data if not null
'---------------------------------------------------------------------------
Sub AddPropertyIfNotNull(ByRef discData, prop, value)
if NOT isNull(value) Then
Call discData.AddProperty(prop, value)
End if
End Sub

'---------------------------------------------------------------------------
'This function discovers the InstanceId property
'---------------------------------------------------------------------------
Sub DiscoverInstanceId(dbPlatform, strInstanceName)
Dim oReg
Dim strSqlPath, strInstanceId
Const HKEY_LOCAL_MACHINE = &amp;H80000002
strSqlPath = "SOFTWARE\Microsoft\Microsoft SQL Server"
If dbPlatform = "x86" Then
' Get the OS Architecture
Dim colOperatingSystems, objOS, osArchitecture, objWMIService
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colOperatingSystems = objWMIService.ExecQuery ("Select * from Win32_OperatingSystem")
For Each objOS In colOperatingSystems
If IsNull(objOS) = False Then
osArchitecture = objOS.OSArchitecture
Exit For
End If
Next

If osArchitecture = "64-bit" Then
strSqlPath = "SOFTWARE\Wow6432Node\Microsoft\Microsoft SQL Server"
End If
End If

Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
Call oReg.GetStringValue(HKEY_LOCAL_MACHINE, strSqlPath &amp; "\Instance Names\SQL", strInstanceName, strInstanceId)
Call AddPropertyIfNotNull(oInst, "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/InstanceId$", strInstanceId)

' Discover the startup parameters.
Dim strParametersKeyPath, arrParameters, arrParameterTypes, strParameterName, strParameterValue
Dim strStartupParameters, i
strParametersKeyPath = strSqlPath &amp; "\" &amp; strInstanceId &amp; "\MSSQLServer\Parameters"
' enum parameter values.
' 0 is success, non-zero is failure.
If oReg.EnumValues(HKEY_LOCAL_MACHINE, strParametersKeyPath, arrParameters, arrParameterTypes) = 0 Then
For i = 0 To UBound(arrParameters)
strParameterName = arrParameters(i)
Call oReg.GetStringValue(HKEY_LOCAL_MACHINE, strParametersKeyPath, strParameterName, strParameterValue)
strStartupParameters = strStartupParameters &amp; strParameterValue &amp; ";"
Next

Call AddPropertyIfNotNull(oInst, "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/StartupParameters$", strStartupParameters)

' Discover MemoryReserverSize after startup parameters discovered
Call GetMemoryReserveSize(strStartupParameters)
End If

' Discover the protocols.
Dim strProtocolPath, strSqlProtocols
Dim dwEnabled, strPipeName
' Discover Named pipeline protocol
strProtocolPath = strSqlPath &amp; "\" &amp; strInstanceID &amp; "\MSSQLServer\SuperSocketNetLib\Np"
Call oReg.GetDWORDValue(HKEY_LOCAL_MACHINE, strProtocolPath, "Enabled", dwEnabled)
Call oReg.GetStringValue(HKEY_LOCAL_MACHINE, strProtocolPath, "PipeName", strPipeName)
strSqlProtocols = "Named Pipes Enabled=" &amp; dwEnabled &amp; ",PipeName=" &amp; strPipeName &amp; ";"

' Discover Shared Memory protocol
strProtocolPath = strSqlPath &amp; "\" &amp; strInstanceID &amp; "\MSSQLServer\SuperSocketNetLib\Sm"
Call oReg.GetDWORDValue(HKEY_LOCAL_MACHINE, strProtocolPath, "Enabled", dwEnabled)
strSqlProtocols = strSqlProtocols &amp; "Shared Memory Enabled=" &amp; dwEnabled &amp; ";"

' Discover TCP/IP protocol
Dim dwKeepAlive, dwListenOnAllIPs
strProtocolPath = strSqlPath &amp; "\" &amp; strInstanceID &amp; "\MSSQLServer\SuperSocketNetLib\TCP"
Call oReg.GetDWORDValue(HKEY_LOCAL_MACHINE, strProtocolPath, "Enabled", dwEnabled)
Call oReg.GetDWORDValue(HKEY_LOCAL_MACHINE, strProtocolPath, "KeepAlive", dwKeepAlive)
Call oReg.GetDWORDValue(HKEY_LOCAL_MACHINE, strProtocolPath, "ListenOnAllIPs", dwListenOnAllIPs)
strSqlProtocols = strSqlProtocols &amp; "TCP/IP Enabled=" &amp; dwEnabled &amp; ",Keep Alive=" &amp; dwKeepAlive &amp; ",ListenOnAllIPs=" &amp; dwListenOnAllIPs

Call AddPropertyIfNotNull(oInst, "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/SqlProtocols$", strSqlProtocols)
End Sub

'---------------------------------------------------------------------------
'This function discovers the server properties
'---------------------------------------------------------------------------
Sub DiscoverServerProperties()
Dim connString
connString = "Provider=SQLOLEDB;Data Source=" + sqlInstance + "; Initial Catalog=master;Integrated Security=SSPI"

Dim oConnection
Set oConnection = CreateObject("ADODB.Connection")
oConnection.Open connString

Dim query
query = "SELECT " &amp; _
"SERVERPROPERTY('BuildClrVersion') AS BuildClrVersion, " &amp; _
"SERVERPROPERTY('Collation') AS Collation, " &amp; _
"SERVERPROPERTY('ComparisonStyle') AS ComparisonStyle, " &amp; _
"SERVERPROPERTY('ComputerNamePhysicalNetBIOS') AS ComputerNamePhysicalNetBIOS, " &amp; _
"SERVERPROPERTY('EngineEdition') AS EngineEdition, " &amp; _
"CAST(SERVERPROPERTY('IsClustered') AS bit) AS IsClustered, " &amp; _
"CAST(SERVERPROPERTY('IsFullTextInstalled') AS bit) AS IsFullTextInstalled, " &amp; _
"CAST(SERVERPROPERTY('IsIntegratedSecurityOnly') AS bit) AS IsIntegratedSecurityOnly, " &amp; _
"CAST(SERVERPROPERTY('IsSingleUser') AS bit) AS IsSingleUser, " &amp; _
"SERVERPROPERTY('LCID') AS LCID, " &amp; _
"SERVERPROPERTY('NumLicenses') AS NumLicenses, " &amp; _
"SERVERPROPERTY('ProcessID') AS ProcessID, " &amp; _
"SERVERPROPERTY('ProductLevel') AS ProductLevel, " &amp; _
"SERVERPROPERTY('ResourceLastUpdateDateTime') AS ResourceLastUpdateDateTime, " &amp; _
"SERVERPROPERTY('SqlCharSetName') AS SqlCharSetName, " &amp; _
"SERVERPROPERTY('SqlSortOrderName') AS SqlSortOrderName, " &amp; _
"SERVERPROPERTY('FilestreamShareName') AS FilestreamShareName, " &amp; _
"SERVERPROPERTY('FilestreamConfiguredLevel') AS FilestreamConfiguredLevel, " &amp; _
"SERVERPROPERTY('FilestreamEffectiveLevel') AS FilestreamEffectiveLevel, " &amp; _
"SERVERPROPERTY('ProductVersion') as ProductVersion "

Dim oResults
Set oResults = oConnection.Execute(query)

If Not oResults.EOF Then
Call AddPropertyIfNotNull(oInst, "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/BuildClrVersion$", oResults(0))
Call AddPropertyIfNotNull(oInst, "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/Collation$", oResults(1))
Call AddPropertyIfNotNull(oInst, "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/ComparisonStyle$", oResults(2))
Call AddPropertyIfNotNull(oInst, "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/ComputerNamePhysicalNetBIOS$", oResults(3))
Call AddPropertyIfNotNull(oInst, "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/EngineEdition$", oResults(4))
Call AddPropertyIfNotNull(oInst, "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/IsClustered$", oResults(5))
Call AddPropertyIfNotNull(oInst, "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/IsFullTextInstalled$", oResults(6))
Call AddPropertyIfNotNull(oInst, "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/IsIntegratedSecurityOnly$", oResults(7))
Call AddPropertyIfNotNull(oInst, "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/IsSingleUser$", oResults(8))
Call AddPropertyIfNotNull(oInst, "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/LCID$", oResults(9))
Call AddPropertyIfNotNull(oInst, "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/NumLicenses$", oResults(10))
Call AddPropertyIfNotNull(oInst, "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/ProcessID$", oResults(11))
Call AddPropertyIfNotNull(oInst, "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/ProductLevel$", oResults(12))
Call AddPropertyIfNotNull(oInst, "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/ResourceLastUpdateDateTime$", oResults(13))
Call AddPropertyIfNotNull(oInst, "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/SqlCharSetName$", oResults(14))
Call AddPropertyIfNotNull(oInst, "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/SqlSortOrderName$", oResults(15))
Call AddPropertyIfNotNull(oInst, "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/FilestreamShareName$", oResults(16))
Call AddPropertyIfNotNull(oInst, "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/FilestreamConfiguredLevel$", oResults(17))
Call AddPropertyIfNotNull(oInst, "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/FilestreamEffectiveLevel$", oResults(18))

Dim productVersion
productVersion = oResults(19)
Call AddPropertyIfNotNull(oInst, "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/ProductVersion$", productVersion)
Call DiscoverVersion(productVersion)
End If

' Record OS version
Set objFSO = CreateObject("Scripting.FileSystemObject")
strSystem32Folder = objFSO.GetSpecialFolder(1).Path
strFileName = objFSO.BuildPath(strSystem32Folder, "Ntoskrnl.exe")
strFileVersion = GetFileVersion(strFileName, intMajor, lngMinor, lngBuild, lngRevision)
AddPropertyIfNotNull oInst, "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/NtoskrnlVersion$", strFileVersion
AddPropertyIfNotNull oInst, "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/NtoskrnlMajor$", intMajor
AddPropertyIfNotNull oInst, "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/NtoskrnlMinor$", lngMinor
AddPropertyIfNotNull oInst, "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/NtoskrnlBuild$", lngBuild
AddPropertyIfNotNull oInst, "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/NtoskrnlRevision$", lngRevision

' query for the list of databases which are not database snapshots
Set oResults = oConnection.Execute("select name, CAST(value as int) as Value, CAST(value_in_use as int) as ValueInUse from sys.configurations")

Do while Not oResults.EOF
Call AddProperties(oInst, oResults)
oResults.MoveNext
Loop

' query max_workers_count and SQLServer_Start_time
Set oResults = oConnection.Execute("SELECT[max_workers_count],[sqlserver_start_time] FROM sys.dm_os_sys_info")
If Not oResults.EOF Then
Call AddPropertyIfNotNull(oInst, "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/MaxWorkersCount$", oResults(0))
Call AddPropertyIfNotNull(oInst, "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/SqlServerStartTime$", CDate(oResults(1)))
End If

' Query Linked_Servers_Count
Set oResults = oConnection.Execute("select COUNT(*) as linked_servers_count from sys.servers ss where ss.is_linked = 1 and name != @@ServerName")
If Not oResults.EOF Then
Call AddPropertyIfNotNull(oInst, "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/LinkedServersCount$", oResults(0))
End If

End Sub

'---------------------------------------------------------------------------
'This function discovers the version tokens
'Takes version parameter, writes to global oInst discovery instance
'---------------------------------------------------------------------------
Sub DiscoverVersion(Version)
Dim versionTokens, MajorVersion, MinorVersion, BuildNumber, BuildRevisionNumber

versionTokens = Split(Version, "." , -1, 1)
if UBound(versionTokens) &gt;= 0 Then
MajorVersion = versionTokens(0)
End If
if UBound(versionTokens) &gt;= 1 Then
MinorVersion = versionTokens(1)
End If
if UBound(versionTokens) &gt;= 2 Then
BuildNumber = versionTokens(2)
End If
if UBound(versionTokens) &gt;= 3 Then
BuildRevisionNumber = versionTokens(3)
End If

Call oInst.AddProperty("$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/MajorVersion$", MajorVersion)
Call oInst.AddProperty("$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/MinorVersion$", MinorVersion)
Call oInst.AddProperty("$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/BuildNumber$", BuildNumber)
Call oInst.AddProperty("$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/BuildRevisionNumber$", BuildRevisionNumber)

End Sub

Function GetFileVersion(strFileName, ByRef intMajor, ByRef lngMinor, ByRef lngBuild, ByRef lngRevision)

Dim arrVersionInfo, strFileVersion

intMajor = Null
lngMinor = Null
lngBuild = Null
lngRevision = Null

If objFSO.FileExists(strFileName) Then
strFileVersion = objFSO.GetFileVersion(strFileName)
If (Len(strFileVersion) &gt; 0) Then
If (InStr(1, strFileVersion, ".") &gt; 0) Then
arrVersionInfo = Split(strFileVersion, ".")
If UBound(arrVersionInfo) &gt;= 0 Then
intMajor = arrVersionInfo(0)
End If
If UBound(arrVersionInfo) &gt;= 1 Then
lngMinor = arrVersionInfo(1)
End If
If UBound(arrVersionInfo) &gt;= 2 Then
lngBuild = arrVersionInfo(2)
End If
If UBound(arrVersionInfo) &gt;= 3 Then
lngRevision = arrVersionInfo(3)
End If
End If
GetFileVersion = strFileVersion
End If
Else
GetFileVersion = ""
End If

End Function


'---------------------------------------------------------------------------
'This function discovers the platform information either x64 or x32
'it takes no parameters but will write to the global oInst discovery data
'---------------------------------------------------------------------------
Function DiscoverPlatform()
Dim connString
connString = "Provider=SQLOLEDB;Data Source=" + sqlInstance + "; Initial Catalog=master;Integrated Security=SSPI"

Dim oConnection
Set oConnection = CreateObject("ADODB.Connection")
oConnection.Open connString

Dim query
query = "exec xp_msver "

Dim oResults, instancePlatform, strPlatform
Set oResults = oConnection.Execute(query)

Do While Not oResults.EOF
If oResults("Name") = "Platform" Then
instancePlatform = oResults("Character_Value")
if InStrRev(instancePlatform,"64") Then
Call oInst.AddProperty("$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/Platform$", "x64")
strPlatform = "x64"
else
Call oInst.AddProperty("$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/Platform$", "x86")
strPlatform = "x86"
End If
Exit Do
End If
oResults.MoveNext
Loop
DiscoverPlatform = strPlatform
End Function

Sub AddProperties(ByRef instance, ByRef oRes)
Dim value, valueInUse, name
name = LCase(oRes(0))
value = oRes(1)
valueInUse = oRes(2)

If IsNull(value) = False Then
With instance
Select Case name
Case "affinity mask"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/AffinityMaskUncommittedValue$", value
Case "affinity i/o mask"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/AffinityIOMaskUncommittedValue$", value
Case "affinity64 mask"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/Affinity64MaskUncommittedValue$", value
Case "affinity64 i/o mask"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/Affinity64IOMaskUncommittedValue$", value
Case "network packet size (b)"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/NetworkPacketSizeUncommittedValue$", value
Case Else
' Do nothing.
End Select
End With
End If

If IsNull(valueInUse) = False Then
With instance
Select Case name
Case "affinity mask"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/AffinityMask$", valueInUse
Case "affinity i/o mask"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/AffinityIOMask$", valueInUse
Case "affinity64 mask"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/Affinity64Mask$", valueInUse
Case "affinity64 i/o mask"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/Affinity64IOMask$", valueInUse
Case "recovery interval (min)"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/RecoveryInterval$", valueInUse
Case "allow updates"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/AllowUpdates$", Cbool(valueInUse)
Case "user connections"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/UserConnections$", valueInUse
Case "locks"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/Locks$", valueInUse
Case "open objects"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/OpenObjects$", valueInUse
Case "fill factor (%)"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/FillFactor$", valueInUse
Case "disallow results from triggers"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/DisallowResultsFromTriggers$", Cbool(valueInUse)
Case "nested triggers"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/NestedTriggers$", Cbool(valueInUse)
Case "server trigger recursion"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/ServerTriggerRecursionEnabled$", Cbool(valueInUse)
Case "remote access"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/RemoteAccess$", Cbool(valueInUse)
Case "default language"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/DefaultLanguage$", valueInUse
Case "cross db ownership chaining"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/CrossDBOwnershipChaining$", Cbool(valueInUse)
Case "max worker threads"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/MaxWorkerThreads$", valueInUse
Case "network packet size (b)"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/NetworkPacketSize$", valueInUse
Case "show advanced options"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/ShowAdvancedOptions$", Cbool(valueInUse)
Case "remote proc trans"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/RemoteProcTrans$", Cbool(valueInUse)
Case "c2 audit mode"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/C2AuditMode$", Cbool(valueInUse)
Case "default full-text language"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/DefaultFullTextLanguage$", valueInUse
Case "two digit year cutoff"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/TwoDigitYearCutoff$", valueInUse
Case "index create memory (kb)"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/IndexCreateMemory$", valueInUse
Case "priority boost"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/PriorityBoost$", Cbool(valueInUse)
Case "remote login timeout (s)"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/RemoteLoginTimeout$", valueInUse
Case "remote query timeout (s)"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/RemoteQueryTimeout$", valueInUse
Case "cursor threshold"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/CursorThreshold$", valueInUse
Case "set working set size"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/SetWorkingSetSize$", Cbool(valueInUse)
Case "user options"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/UserOptions$", valueInUse
Case "max text repl size (b)"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/ReplicationMaxTextSize$", valueInUse
Case "media retention"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/MediaRetention$", valueInUse
Case "cost threshold for parallelism"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/CostThresholdForParallelism$", valueInUse
Case "max degree of parallelism"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/MaxDegreeOfParallelism$", valueInUse
Case "min memory per query (kb)"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/MinMemoryPerQuery$", valueInUse
Case "query wait (s)"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/QueryWait$", valueInUse
Case "min server memory (mb)"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/MinServerMemory$", valueInUse
Case "max server memory (mb)"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/MaxServerMemory$", valueInUse
Case "query governor cost limit"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/QueryGovernorCostLimit$", valueInUse
Case "lightweight pooling"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/LightweightPooling$", Cbool(valueInUse)
Case "scan for startup procs"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/ScanForStartupProcedures$", Cbool(valueInUse)
Case "awe enabled"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/AweEnabled$", Cbool(valueInUse)
Case "transform noise words"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/TransformNoiseWords$", Cbool(valueInUse)
Case "precompute rank"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/PrecomputeRank$", Cbool(valueInUse)
Case "ph timeout (s)"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/ProtocolHandlerTimeout$", valueInUse
Case "clr enabled"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/IsSqlClrEnabled$", Cbool(valueInUse)
Case "max full-text crawl range"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/FullTextCrawlRangeMax$", valueInUse
Case "ft notify bandwidth (min)"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/FullTextNotifyBandwidthMin$", valueInUse
Case "ft notify bandwidth (max)"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/FullTextNotifyBandwidthMax$", valueInUse
Case "ft crawl bandwidth (min)"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/FullTextCrawlBandwidthMin$", valueInUse
Case "ft crawl bandwidth (max)"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/FullTextCrawlBandwidthMax$", valueInUse
Case "default trace enabled"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/DefaultTraceEnabled$", Cbool(valueInUse)
Case "blocked process threshold (s)"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/BlockedProcessThreshold$", valueInUse
Case "in-doubt xact resolution"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/InDoubtTransactionResolution$", valueInUse
Case "remote admin connections"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/RemoteAdminConnections$", Cbool(valueInUse)
Case "common criteria compliance enabled"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/CommonCriteriaComplianceEnabled$", Cbool(valueInUse)
Case "ekm provider enabled"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/ExtensibleKeyManagementEnabled$", Cbool(valueInUse)
Case "backup compression default"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/DefaultBackupCompression$", Cbool(valueInUse)
Case "filestream access level"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/FilestreamAccessLevel$", valueInUse
Case "optimize for ad hoc workloads"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/OptimizeForAdHocWorkloads$", Cbool(valueInUse)
Case "access check cache bucket count"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/AccessCheckCacheBucketCount$", valueInUse
Case "access check cache quota"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/AccessCheckCacheQuota$", valueInUse
Case "agent xps"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/AgentXPsEnabled$", Cbool(valueInUse)
Case "sql mail xps"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/SqlMailXPsEnabled$", Cbool(valueInUse)
Case "database mail xps"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/DatabaseMailEnabled$", Cbool(valueInUse)
Case "smo and dmo xps"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/SmoAndDmoXPsEnabled$", Cbool(valueInUse)
Case "ole automation procedures"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/OleAutomationProceduresEnabled$", Cbool(valueInUse)
Case "xp_cmdshell"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/XPCmdShellEnabled$", Cbool(valueInUse)
Case "ad hoc distributed queries"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/AdHocDistributedQueriesEnabled$", Cbool(valueInUse)
Case "replication xps"
.AddProperty "$MPElement[Name='KnowledgeServicesSQLServerLibrary!Microsoft.KnowledgeServices.SQLServer.DBEngine']/ReplicationXPsEnabled$", Cbool(valueInUse)
Case Else
' Do nothing.
End Select
End With
End If

End Sub

'---------------------------------------------------------------------------
'This function returns the UTC time by looking at the time skew in registry
'and correcting for it.
'---------------------------------------------------------------------------
Function GetUTCNow()
Dim localTime, wScriptShell, registryKey, offsetMinutes, utcTime
localTime = now
set wScriptShell = CreateObject("WScript.Shell")
registryKey = "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation\ActiveTimeBias"
offsetMinutes = wScriptShell.RegRead(registryKey)
utcTime = dateadd("n", offsetMinutes, localTime)
GetUTCNow = utcTime
End Function
</Script></ScriptBody>
<TimeoutSeconds>300</TimeoutSeconds>
<IntervalInSeconds>15399</IntervalInSeconds>
</DataSource>
</Discovery>