2017-12-04 4 views
1

定期的なスケジュール(以下の画像)で「キャッシュ」される予定のレポートが約50件あります。SSRSキャッシュスケジュールRe

SSRS Caching Options Image

この情報は、レポートサーバーデータベースでのみ入手可能であるか、またはスケジュール情報は、PowerShellを使用して取得することができますか?これまで実行してきたすべての「明白な」メソッドは、情報やブール値を返さない(すべて「偽」)

答えて

1

GetItemHistoryOptionsを使用してレポートアイテムのスケジュールを取得できます。

のメソッドのパラメータScheduleDefinitionOrReference[ref]のプロパティに基づいて、情報の表示方法を決定することができます。 Item

タイプ、MinuteRecurrenceの一つ、DailyRecurrenceWeeklyRecurrenceMonthlyRecurrence又はMonthlyDOWRecurrenceことができます。

$svcUrl = 'http://the-host-name/ReportServer/reportservice2010.asmx' 
$svc = New-WebServiceProxy -Class 'RS' -Namespace 'RS' -Uri $svcUrl -UseDefaultCredential 
$reports = $svc.ListChildren("/", $true) | Where-Object { $_.TypeName -eq "Report" } 

$KeepExecutionSnapshots = $false 
$ScheduleDefinitionOrReference = New-Object RS.ScheduleDefinitionOrReference 

foreach ($report in $reports) { 
    $result = $svc.GetItemHistoryOptions($report.Path, 
     [ref]$KeepExecutionSnapshots, 
     [ref]$ScheduleDefinitionOrReference) 
    if($ScheduleDefinitionOrReference.Item -is [RS.MonthlyRecurrence]) 
    { 
     "'$($report.Name)' Schedule Information:" 
     "StartDateTime: $($ScheduleDefinitionOrReference.StartDateTime)" 
     "StartDateTime: $($ScheduleDefinitionOrReference.EndDate)" 
     "EndDateSpecified: $($ScheduleDefinitionOrReference.EndDateSpecified)" 
     "Days: $($ScheduleDefinitionOrReference.Item.Days)" 
     $months = Get-Member ` 
      -InputObject $($ScheduleDefinitionOrReference.Item.MonthsOfYear) ` 
      -MemberType Property | Where-Object { 
      $ScheduleDefinitionOrReference.Item.MonthsOfYear.$($_.Name) -eq $true 
     } 
     "Months:$($months.Name -join ",")" 
    } 
} 

そして結果はこのようになります:

'MyReport' Schedule Information: 
StartDateTime: 12/19/2017 18:00:00 
StartDateTime: 01/01/0001 00:00:00 
EndDateSpecified: False 
Days: 1,3-5 
Months:August,December,July,November,October,September 
+0

ありがとう!あなたは、このようなコードを使用することができますMonthlyRecurrenceをフォーマットするたとえば

これは私が探していたものです。違いは、GetItemHistoryOptions()ではなく、GetExecutionOptions()メソッドを使用して、探していたデータを取得する必要がありました。両方とも同じ方法で、異なるスケジュールオブジェクトで動作します。再度、感謝します! –

+0

素晴らしい!どういたしまして :) –