2017-12-04 15 views
1

되풀이 일정 (아래 이미지)에 "캐시 됨"으로 예약 된 약 50 개의 보고서가 있습니다. SSRS 캐시 일정 다시

SSRS Caching Options Image

이 정보가 보고서 서버 데이터베이스에서만 사용할 수 있습니다 또는 일정 정보는 PowerShell을 사용하여 검색 할 수 있습니까? 지금까지 실행 한 모든 "명백한"방법은 정보 또는 부울 값을 반환하지 않습니다 (모두 '거짓').

답변

1

GetItemHistoryOptions을 사용하여 보고서 항목의 일정을 가져올 수 있습니다.

유형의 속성에 따라 ScheduleDefinitionOrReference[ref] 매개 변수의 속성을 기반으로 정보 표시 방법을 결정할 수 있습니다. Item

유형, MinuteRecurrence 중 하나 DailyRecurrence, WeeklyRecurrence, MonthlyRecurrence 또는 MonthlyDOWRecurrence 될 수 있습니다.

예 당신은 코드를 사용할 수 있습니다 MonthlyRecurrence의 형식을 예를 들어

:

$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

감사합니다! 이것은 제가 찾고 있던 것입니다. 차이점은 GetItemHistoryOptions() 대신 GetExecutionOptions() 메서드를 사용하여 찾고 있던 데이터를 가져와야한다는 것입니다. 둘 다 똑같은 방법으로 작동하며, 다른 일정 개체 만 있습니다. 다시 한 번 감사드립니다! –

+0

좋습니다! 천만에요 :) –