已停用信任的自動更新

Microsoft.ActiveDirectoryFederationServices2012R2.TrustMgmtAutoUpdateSkippedWithWarningMonitor (UnitMonitor)

Knowledge Base article:

摘要

一個或多個信任的同盟中繼資料 (用於更新合作夥伴組織中的合作夥伴信任設定) 之自動更新已遭停用,而自動信任監視 (用於偵測來自合作夥伴組織的中繼資料之差異) 已啟用。

此監視器會掃瞄所有信任的 Windows PowerShell 設定 ConflictWithPublishedPolicy,且會在該設定設為 True 時產生黃色狀態和警示。

原因

信任的自動更新已遭停用,而自動監視已啟用。

解決方式

使用 AD FS 管理嵌入式管理單元來修改信任的內容,藉以啟用信任的自動更新設定。

Element properties:

TargetMicrosoft.ActiveDirectoryFederationServices2012R2.TrustManagement
Parent MonitorSystem.Health.ConfigurationState
CategoryConfigurationHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.ActiveDirectoryFederationServices2012R2.TwoStateScriptMonitorType
RemotableTrue
AccessibilityPublic
Alert Message
已停用信任的自動更新
由於啟用了自動監視,同盟中繼資料的一個或多個信任組態自動更新遭到停用。Federation Service 上的信任組態將不再自動認可合作夥伴組織所進行的任何進一步變更。檢查 [警示內容] 索引標籤以取得更多詳細資料。
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.ActiveDirectoryFederationServices2012R2.TrustMgmtAutoUpdateSkippedWithWarningMonitor" Accessibility="Public" Enabled="true" Target="Microsoft.ActiveDirectoryFederationServices2012R2.TrustManagement" ParentMonitorID="Health!System.Health.ConfigurationState" Remotable="true" Priority="Normal" TypeID="Microsoft.ActiveDirectoryFederationServices2012R2.TwoStateScriptMonitorType" ConfirmDelivery="false">
<Category>ConfigurationHealth</Category>
<AlertSettings AlertMessage="Microsoft.ActiveDirectoryFederationServices2012R2.TrustMgmtAutoUpdateSkippedWithWarningMonitor_AlertMessageResourceID">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Warning</AlertSeverity>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Success" MonitorTypeStateID="Success" HealthState="Success"/>
<OperationalState ID="Error" MonitorTypeStateID="Error" HealthState="Warning"/>
</OperationalStates>
<Configuration>
<PowerShellPath>%windir%\system32\windowspowershell\v1.0\powershell.exe</PowerShellPath>
<ScriptName>TrustManagementAutoUpdateSkippedWithWarningCheck.ps1</ScriptName>
<ScriptBody><Script>
Import-Module adfs

$scomapi = new-object -comObject "MOM.ScriptAPI"
$scomapi.LogScriptEvent("ActiveDirectoryFederationServices", 200, 4, "Trust Mgmt PowerShell monitoring script executed")

$relyingParties = Get-ADFSRelyingPartyTrust
$conflictWithPublishedPolicy = $false

foreach ($rp in $relyingParties)
{
if ($rp.ConflictWithPublishedPolicy -eq $true )
{
$conflictWithPublishedPolicy = $true
break
}
}

if ( $conflictWithPublishedPolicy -ne $true )
{
$claimsProviders = Get-ADFSClaimsProviderTrust
foreach ($cp in $claimsProviders )
{
if ($cp.ConflictWithPublishedPolicy -eq $true)
{
$conflictWithPublishedPolicy = $true
break
}
}
}

$scompb = $scomapi.CreatePropertyBag()
$scompb.AddValue("ConflictWithPublishedPolicy", $conflictWithPublishedPolicy )
$scomapi.AddItem($scompb)

$scomapi.ReturnItems()
</Script></ScriptBody>
<IntervalSeconds>900</IntervalSeconds>
<TimeoutSeconds>120</TimeoutSeconds>
<ErrorExpression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Property[@Name='ConflictWithPublishedPolicy']</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">true</Value>
</ValueExpression>
</SimpleExpression>
</ErrorExpression>
<SuccessExpression>
<SimpleExpression>
<ValueExpression>
<XPathQuery Type="String">Property[@Name='ConflictWithPublishedPolicy']</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value Type="String">false</Value>
</ValueExpression>
</SimpleExpression>
</SuccessExpression>
</Configuration>
</UnitMonitor>