次の方法で共有


Operations Manager レポートの展開に失敗する

この記事は、Operations Manager レポートの展開がイベント ID 31567 で失敗する問題を解決するのに役立ちます。

適用対象: System Center Operations Manager
元の KB 番号: 4519161

現象

System Center 2019 Operations Manager と最新バージョンの SQL Server Reporting Services (SSRS) 2017 をインストールすると、Operations Manager レポートは展開されません。

オペレーション コンソールで Reporting ビューを開き、いずれかのフォルダーを選択すると、レポートの一覧は空になります。 さらに、次のようなエラー メッセージが Operations Manager イベント ログに記録されます。

ログ名: Operations Manager
サービス: ヘルス サービス モジュール
日付: <Date><Time>
イベント ID: 31567
タスク カテゴリ: Data Warehouse
レベル: エラー
キーワード: クラシック
ユーザー: N/A
コンピューター: <FQDN>
説明:
SQL Server Reporting Services サーバーにレポート コンポーネントを展開できませんでした。 操作が再試行されます。 例外 'DeploymentException': バージョン依存 ID '<ID>' を持つ管理パックのレポートを展開できませんでした。 System.Web.Services.Protocols.SoapException: Uploading or saving files with .CustomConfiguration 拡張機能は許可されていません。 質問がある場合は、管理者に問い合わせてください。 --->
Microsoft.ReportingServices.Diagnostics.Utilities.ResourceFileFormatNotAllowedException: でファイルをアップロードまたは保存します。CustomConfiguration 拡張機能は使用できません。 質問がある場合は、管理者に問い合わせてください。
at Microsoft.ReportingServices.Library.ReportingService2005Impl.CreateResource(String Resource, String Parent, Boolean Overwrite, Byte[] Contents, String MimeType, Property[] Properties, Guid batchId)
at Microsoft.ReportingServices.WebServer.ReportingService2005.CreateResource(String Resource, String Parent, Boolean Overwrite, Byte[] Contents, String MimeType, Property[] Properties)
これにより 1 つ以上のワークフローが影響を受けました。
ワークフロー名: Microsoft.SystemCenter.DataWarehouse.Deployment.Report
インスタンス名: Data Warehouse 同期サービス
インスタンス ID: {GUID}
管理グループ: <管理グループ名>

Note

この問題は、SYSTEM Center Operations Manager バージョン 1807 で SSRS 2017 にアップグレードした後、Operations Manager レポートを削除して再インストールするときにも発生します。

原因

SSRS 2017 バージョン 14.0.600.1274 以降のバージョンには、新しい詳細設定 AllowedResourceExtensionsForUploadが含まれています。 この設定により、レポート サーバーにアップロードできるリソース ファイルの拡張機能のセットが制限されます。 この問題は、Operations Manager Reporting が AllowedResourceExtensionsForUpload の既定のセットに含まれていない拡張機能を使用しているために発生します。

解決策 1

承認された拡張機能の一覧に *.* を追加します。 これを行うには、次の手順を実行します。

  1. SQL Server Management Studio を起動し、Operations Manager が使用するレポート サーバー インスタンスに接続します。
  2. レポート サーバー インスタンス名を右クリックし、 Propertiesを選択し、 Advancedを選択します。
  3. AllowedResourceExtensionsForUpload設定を見つけて、拡張機能の一覧に*.*を追加し、OK を選択します。
  4. SSRS を再起動します。

解決策 2

PowerShell スクリプトを使用して拡張機能を追加します。 これを行うためには、次の PowerShell スクリプトを実行します。

Note

このスクリプトを実行した後、SSRS を再起動する必要があります。

$ServiceAddress = 'http://localhost'

$ExtensionAdd = @(
	'*'
	'CustomConfiguration'
	'Report'
	'AvailabilityMonitor'
	'TopNApplications'
	'Settings'
	'License'
	'ServiceLevelTrackingSummary'
	'CustomPerformance'
	'MostCommonEvents'
	'PerformanceTop'
	'Detail'
	'DatabaseSettings'
	'ServiceLevelObjectiveDetail'
	'PerformanceDetail'
	'ConfigurationChange'
	'TopNErrorGroupsGrowth'
	'AvailabilityTime'
	'rpdl'
	'mp'
	'TopNErrorGroups'
	'Downtime'
	'TopNApplicationsGrowth'
	'DisplayStrings'
	'Space'
	'Override'
	'Performance'
	'AlertDetail'
	'ManagementPackODR'
	'AlertsPerDay'
	'EventTemplate'
	'ManagementGroup'
	'Alert'
	'EventAnalysis'
	'MostCommonAlerts'
	'Availability'
	'AlertLoggingLatency'
	'PerformanceTopInstance'
	'rdl'
	'PerformanceBySystem'
	'InstallUpdateScript'
	'PerformanceByUtilization'
	'DropScript'
)

Write-Output 'Setting Allowed Resource Extensions for Upload'
$error.clear()
try
{
	$Uri = [System.Uri]"$ServiceAddress/ReportServer/ReportService2010.asmx"
	$Proxy = New-WebServiceProxy -Uri $Uri -UseDefaultCredential
	$Type = $Proxy.GetType().Namespace + '.Property'
	
	$Property = New-Object -TypeName $Type
	$Property.Name = 'AllowedResourceExtensionsForUpload'

	$ValueAdd = $ExtensionAdd | ForEach-Object -Process {
		"*.$psItem"
	}	

	$Current = $Proxy.GetSystemProperties($Property)
	if ($Current)
    {
	$ValueCurrent = $Current.Value -split ','
	$ValueSet = $ValueCurrent + $ValueAdd | Sort-Object -Unique
	}
	else
    {
        $ValueSet = $ValueAdd | Sort-Object -Unique
    }

	
	$Property.Value = $ValueSet -join ','
	
	$Proxy.SetSystemProperties($Property)
    Write-Output '  Successfully set property to: *.*'
}
catch
{
	Write-Warning "Failure occurred: $error"
}
Write-Output 'Script completed!'

Note

レポート サービスに対する有効な Web アドレスを使用して、 $ServiceAddress 変数を更新することが必要になる場合があります。 スクリプト内の拡張機能の一覧が網羅されていない可能性があります。 必要に応じて、独自の拡張機能を含めます。