Monitor jednostkowy oparty na skryptach, który umożliwia okresowe sprawdzanie możliwości nawiązania połączenia z serwerem usługi Ochrona hosta przez chronioną sieć szkieletową.
Oparty na skryptach monitor jednostkowy chronionej sieci szkieletowej, który sprawdza, czy sieć szkieletowa może nawiązać połączenie z adresami URL podanymi w konfiguracji.
Może to być związane z problemem z połączeniem sieciowym lub problemem z konfiguracją domeny.
Problem jest rozwiązywany automatycznie po pomyślnym wykonaniu przez chronioną sieć szkieletową testu ping dotyczącego adresów URL zaświadczania i ochrony klucza.
Target | Microsoft.Windows.GuardedFabric.10.0.ComputerRole.GuardedHost | ||
Parent Monitor | System.Health.AvailabilityState | ||
Category | AvailabilityHealth | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | MatchMonitorHealth | ||
Alert Priority | High | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.Windows.TimedScript.TwoStateMonitorType | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.Windows.GuardedFabric.10.0.GuardedHostConnectionMonitor" Accessibility="Public" Enabled="true" Target="HGSDL!Microsoft.Windows.GuardedFabric.10.0.ComputerRole.GuardedHost" ParentMonitorID="Health!System.Health.AvailabilityState" Remotable="true" Priority="Normal" TypeID="Windows!Microsoft.Windows.TimedScript.TwoStateMonitorType" ConfirmDelivery="false">
<Category>AvailabilityHealth</Category>
<AlertSettings AlertMessage="Microsoft.Windows.GuardedFabric.10.0.GuardedHostConnectionMonitor.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>High</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Error" MonitorTypeStateID="Error" HealthState="Error"/>
<OperationalState ID="Success" MonitorTypeStateID="Success" HealthState="Success"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>3600</IntervalSeconds>
<SyncTime/>
<ScriptName>ClientConnectionMonitor.ps1</ScriptName>
<Arguments/>
<ScriptBody> param ()
$testSuccess = $true
# Get current information about HgsClient
$info = Get-HgsClientConfiguration
$api = New-Object -ComObject 'MOM.ScriptAPI'
$bag = $api.CreatePropertyBag()
if ($info.Mode -ne $null)
{
if($info.Mode.ToString() -ieq "HostGuardianService")
{
$kdsURL = $info.KeyProtectionServerUrl -replace "http://", ""
$kdsURL = $kdsURL -replace "/KeyProtection", ""
# And in the case of https
$kdsURL = $kdsURL -replace "https://", ""
#do the same for the Attestation URL
$attestationURL = $info.AttestationServerUrl -replace "http://", ""
$attestationURL = $attestationURL -replace "/KeyProtection", ""
# And in the case of https
$attestationURL = $attestationURL -replace "https://", ""
try
{
Test-Connection -ComputerName $kdsURL -ErrorAction Stop
Test-Connection -ComputerName $attestationURL -ErrorAction Stop
}
catch [Exception]
{
$testSuccess = $false
}
}
}
$bag.AddValue("Result", $testSuccess)
$bag </ScriptBody>
<TimeoutSeconds>120</TimeoutSeconds>
<ErrorExpression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="Boolean">Property[@Name='Result']</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="Boolean">false</Value>
</ValueExpression>
</SimpleExpression>
</ErrorExpression>
<SuccessExpression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="Boolean">Property[@Name='Result']</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="Boolean">true</Value>
</ValueExpression>
</SimpleExpression>
</SuccessExpression>
</Configuration>
</UnitMonitor>