User Profile Service Application のバックアップに伴いファイアウォールルールが重複して作成される問題について

本投稿では、User Profile Service Application のバックアップに伴いファイアウォールルールが重複して作成される問題について解説します。

対象製品
SharePoint Server 2010
SharePoint Server 2013

現象
上記製品において、User Profile Service Application のバックアップを実施すると、以下の問題が発生します。

・アプリケーション イベント ログにイベント ID 234 が記録されます。
・信頼されたルート証明機関に証明書「ForefrontIdentityManager」が重複して作成されます。
・以下のファイア ウォール ルールが重複して作成されます。
  ILM Web Service-RMS
  ILM Web Service-STS

原因
User Profile Service Application のバックアップ プロセスでは、ForeFront Identity Manager の再展開処理が行われます。
この再展開処理の過程で、以下の動作が発生します。

・ForeFront Identity Manager に関する以下のファイア ウォール ルールの追加
・ForeFront Identity Manager で使用される証明書の登録

対処方法
User Profile Service Application のバックアップに伴うイベント ID 234 は無視しても支障はありません。
また、重複して作成されたファイア ウォール ルールおよび ForeFront Identity Manager で使用される証明書は製品の動作には影響しないため、削除は必須ではありませんが、バックアップを重ねることで管理コンソール上に重複した情報が多数表示されるため管理上不都合がある場合は、以下のスクリプトにより重複したデータを削除できます。このスクリプトはどのタイミングでも実施いただけますが、事前に検証環境等で動作を確認いただくことをお勧めします。

補足:イベント ID 234 を出力させたくない場合は、ForeFront Identity Manager で使用される証明書を User Profile Service Application のバックアップの前にすべて削除する必要があります。以下のスクリプトでは重複している証明書のみを削除するため、次回 User Profile Service Application のバックアップを行った際にイベント ID 234 が引き続き記録されますが、このイベントは無視しても支障はありません。

#本 PowerShell スクリプトはローカル管理者権限を持つファーム アカウントでサーバーにログインして実施してください。#CurrentUser の重複した証明書 ForefrontIdentityManager を削除$items = Get-ChildItem -Path Cert:CurrentUser\Root | Where {$_.Issuer -eq "CN=ForefrontIdentityManager"}$i = 0foreach($item in $items){  $i = $i + 1  if($i -gt 1){    #検出された2つ目以降のアイテムを削除します    $thumbprint = $item.thumbprint    Remove-Item -Path Cert:CurrentUser\Root\$thumbprint  }}

#LocalMachine の重複した証明書 ForefrontIdentityManager を削除$items = Get-ChildItem -Path Cert:LocalMachine\Root | Where {$_.Issuer -eq "CN=ForefrontIdentityManager"}$i = 0foreach($item in $items){  $i = $i + 1  if($i -gt 1){    #検出された2つ目以降のアイテムを削除します    $thumbprint = $item.thumbprint    Remove-Item -Path Cert:LocalMachine\Root\$thumbprint  }}

#重複したファイア ウォール ルール ILM Web Service - RMS を削除$items = Get-NetFirewallRule | Where {$_.DisplayName -eq "ILM Web Service - RMS"}$i = 0foreach($item in $items){  $i = $i + 1  if($i -gt 1){    #検出された2つ目以降のアイテムを削除します    $name = $item.name    Remove-NetfirewallRule -Name $name  }}

#重複したファイア ウォール ルール ILM Web Service - STS を削除$items = Get-NetFirewallRule | Where {$_.DisplayName -eq "ILM Web Service - STS"}$i = 0foreach($item in $items){  $i = $i + 1  if($i -gt 1){    #検出された2つ目以降のアイテムを削除します    $name = $item.name    Remove-NetfirewallRule -Name $name  }}

関連情報
Event ID 22, 234 and multiple ForeFront certificates
https://support.microsoft.com/en-us/kb/2498715