[英]Change description of an SSRS report subscription through PowerShell
我有一个PowerShell脚本,我想更新一些符合某些条件的SSRS报告订阅的描述。 我知道以下方法。
$proxy.ChangeSubscriptionOwner()
同样,我们是否有任何机制来更新描述? 请提出建议。
我知道这还无法解决您的问题,但也许可以帮助您部分解决。
这是您获取所有带有订阅的报告的方法。
function Get-DataDrivenSubscriptionProperties
{
param([string] $Subscriptionid,
[object]$ssrsproxy)
$ddextensionSettings = $ddDataRetrievalPlan = $ddDescription = $ddactive = $ddstatus = $ddeventtype = $ddmatchdata = $ddparameters = $Null
$ddOwner = $ssrsproxy.GetDataDrivenSubscriptionProperties($subscriptionid,[ref]$ddextensionSettings,[ref]$ddDataRetrievalPlan,[ref]$ddDescription,[ref]$ddactive,[ref]$ddstatus,[ref]$ddeventtype,[ref]$ddmatchdata,[ref]$ddparameters)
[PSCustomObject]@{
'Owner' = $ddOwner
'extensionSettings' = $ddextensionSettings
'DataRetrievalPlan' = $ddDataRetrievalPlan
'Description' = $ddDescription
'active' = $ddactive
'status' =$ddstatus
'eventtype' =$ddeventtype
'matchdata' = $ddmatchdata
'parameters' = $ddparameters
}
}
function Get-SubscriptionProperties
{
param([string]$Subscriptionid,
[object]$ssrsproxy)
$subextensionSettings = $subDataRetrievalPlan = $subDescription = $subactive = $substatus = $subeventtype = $submatchdata = $subparameters = $Null
$subOwner = $ssrsproxy.GetSubscriptionProperties($subscriptionid,[ref]$subextensionSettings,[ref]$subDescription,[ref]$subactive,[ref]$substatus,[ref]$subeventtype,[ref]$submatchdata,[ref]$subparameters)
[PSCustomObject]@{
'Owner' = $subOwner
'extensionSettings' = $subextensionSettings
'Description' = $subDescription
'active' = $subactive
'status' =$substatus
'eventtype' =$subeventtype
'matchdata' = $submatchdata
'parameters' = $subparameters
}
}
function Get-Subscriptions
{
#Returns a nested object with each
param([object]$ssrsproxy, [string]$site)
#write-verbose 'Path to where the reports are must be specified to get the subscriptions you want.. Root (/) does not seem to get everything'
$items = $ssrsproxy.ListChildren($site,$true) | Where-Object{$_.typename -eq 'report'}
$subscriptions = @()
foreach($item in $items)
{
$subs = $ssrsproxy.ListSubscriptions($item.path)
$count = $subs.count
write-verbose "found $($subs.count) subscriptions for $($item.Name)"
$subprops = @()
if($subs)
{
$s = @()
foreach($sub in $subs)
{
if($sub.isdatadriven -eq 'true')
{
$subprops += Get-DataDrivenSubscriptionProperties -subscriptionid $sub.SubscriptionID -ssrsproxy $ssrsproxy
$sub | add-member -MemberType NoteProperty -Name Properties -value $subprops -TypeName [PSCustomObject]
}
else
{
$subprops += Get-SubscriptionProperties -subscriptionid $sub.SubscriptionID -ssrsproxy $ssrsproxy
$sub | add-member -MemberType NoteProperty -Name Properties -value $subprops -TypeName [PSCustomObject]
}
}
$item | add-member -MemberType NoteProperty -Name Subscriptions -Value $subs -TypeName [PSCustomObject]
$item | Add-Member -MemberType NoteProperty -Name 'SubscriptionCount' -Value $count
}
else
{
$count = 0
}
if($count -ne 0)
{
$subscriptions += $item
}
}
$subscriptions
}
function New-SubscriptionFile
{
[CmdletBinding()]
[Alias()]
param([psobject]$subscriptionObject, [string]$path)
if(test-path $path -PathType Leaf)
{$path = split-path $path}
foreach($sub in $subscriptionObject)
{
$reportName = (($sub.name).split('.'))[0]
$filename = "$path\$reportName.xml"
$sub | Export-Clixml -Path $filename -Depth 100
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.