Odnajdywanie agenta Advisor Knowledge

Microsoft.SystemCenter.Advisor.AgentHealth.KnowledgeDiscoveryMonitor (UnitMonitor)

Knowledge Base article:

Podsumowanie

Nie można uruchomić odnajdywania agenta Advisor Knowledge na określonym agencie.

Przyczyny

Pakiety administracyjne są uszkodzone lub nieprawidłowe.

Rozwiązania

Jeśli uczestnictwo agenta zostało określone pierwszy raz, taka sytuacja jest normalna. Poczekaj kilka minut. W przeciwnym wypadku usuń folder Health Service State w lokalizacji %Program Files%\System Center Operations Manager\ na określonym agencie i uruchom ponownie usługę kondycji, aby wymusić pobranie najnowszych pakietów administracyjnych.

Element properties:

TargetMicrosoft.SystemCenter.Advisor.Internal.AdvisorConnector
Parent MonitorSystem.Health.AvailabilityState
CategoryAvailabilityHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.Windows.TimedScript.ThreeStateMonitorType
RemotableTrue
AccessibilityPublic
Alert Message
Nie można odnaleźć agenta Advisor Knowledge na serwerze
Pakiety administracyjne usługi Advisor są nieprawidłowe.
RunAsSystem.PrivilegedMonitoringAccount

Source Code:

<UnitMonitor ID="Microsoft.SystemCenter.Advisor.AgentHealth.KnowledgeDiscoveryMonitor" Accessibility="Public" Enabled="true" Target="Microsoft.SystemCenter.Advisor.Internal.AdvisorConnector" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="Windows!Microsoft.Windows.TimedScript.ThreeStateMonitorType" RunAs="System!System.PrivilegedMonitoringAccount" ConfirmDelivery="false">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="Microsoft.SystemCenter.Advisor.AgentHealth.KnowledgeDiscoveryMonitor.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Warning" MonitorTypeStateID="Warning" HealthState="Warning"/>
<OperationalState ID="Success" MonitorTypeStateID="Success" HealthState="Success"/>
<OperationalState ID="Error" MonitorTypeStateID="Error" HealthState="Error"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>60</IntervalSeconds>
<SyncTime/>
<ScriptName>MonitorKnowledgeDiscovery.vbs</ScriptName>
<Arguments/>
<ScriptBody><Script>
function readFromRegistry(strRegistryKey, strDefault)
Dim WSHShell, value

On Error Resume Next
Set WSHShell = CreateObject("WScript.Shell")
value = WSHShell.RegRead(strRegistryKey)

if err.number &lt;&gt; 0 then
readFromRegistry=strDefault
else
readFromRegistry=value
end if

set WSHShell = nothing
end function

Dim oAPI, oBag, strStatePath, strMonitorState
Set oAPI = CreateObject("MOM.ScriptAPI")
Set oBag = oAPI.CreatePropertyBag()

strStatePath = readFromRegistry("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\System Center Operations Manager\12\Advisor\DataRoot", Empty)
strMonitorState = "Warning"

if strStatePath &lt;&gt; Empty then
Dim oFSO, strModelPath, strKnowledgePath, oKnowledgeFolder
Set oFSO = CreateObject("Scripting.FileSystemObject")
strModelPath = strStatePath &amp; "\AdvisorMonitorV2\Configuration\model.xml"
strKnowledgePath = strStatePath &amp; "\AdvisorMonitorV2\Management Packs\Knowledge12"
if oFSO.FileExists(strModelPath) then
strMonitorState = "Success"
elseif oFSO.FolderExists(strKnowledgePath) then
Set oKnowledgeFolder = oFSO.GetFolder(strKnowledgePath)
if oKnowledgeFolder.Files.Count &lt;&gt; 0 then
strMonitorState = "Error"
end if
end if
else
strMonitorState = "Success"
end if

Call oBag.AddValue("Status", strMonitorState)
Call oAPI.Return(oBag)
</Script></ScriptBody>
<TimeoutSeconds>60</TimeoutSeconds>
<ErrorExpression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Property[@Name='Status']</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Error</Value>
</ValueExpression>
</SimpleExpression>
</ErrorExpression>
<WarningExpression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Property[@Name='Status']</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Warning</Value>
</ValueExpression>
</SimpleExpression>
</WarningExpression>
<SuccessExpression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Property[@Name='Status']</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">Success</Value>
</ValueExpression>
</SimpleExpression>
</SuccessExpression>
</Configuration>
</UnitMonitor>