3
我在問這是因爲我是一個n00b的涉及Powershell。使用Powershell在Reporting Services中設置用戶權限
如何使用PowerShell來一個特定的域用戶或組添加到SSRS2005特定報告的作用(說內容管理或瀏覽器角色)?有一個簡單的一行或兩行腳本來實現它嗎?
謝謝!
注意:這是絕對相關的編程(而不是服務器管理員),但我也要問這在SF上。
我在問這是因爲我是一個n00b的涉及Powershell。使用Powershell在Reporting Services中設置用戶權限
如何使用PowerShell來一個特定的域用戶或組添加到SSRS2005特定報告的作用(說內容管理或瀏覽器角色)?有一個簡單的一行或兩行腳本來實現它嗎?
謝謝!
注意:這是絕對相關的編程(而不是服務器管理員),但我也要問這在SF上。
對不起,它不只是一個或兩行,但你可以很容易地包裹下面的示例代碼爲可重複使用的功能:
$ReportServerUri = 'http://myreportserver/ReportServer/ReportService2005.asmx'
$InheritParent = $true
$ItemPath = '/SomeReportFolder'
$GroupUserName = 'MYDOMAIN\SomeUser'
$RoleName = 'SomeReportServerRoleToGrant'
$Proxy = New-WebServiceProxy -Uri $ReportServerUri -Namespace SSRS.ReportingService2005
$Policies = $Proxy.GetPolicies($ItemPath, [ref]$InheritParent)
$Policy = $Policies |
Where-Object { $_.GroupUserName -eq $GroupUserName } |
Select-Object -First 1
if (-not $Policy) {
$Policy = New-Object -TypeName SSRS.ReportingService2005.Policy
$Policy.GroupUserName = $GroupUserName
$Policy.Roles = @()
$Policies += $Policy
}
$Role = $Policy.Roles |
Where-Object { $_.Name -eq $RoleName } |
Select-Object -First 1
if (-not $Role) {
$Role = New-Object -TypeName SSRS.ReportingService2005.Role
$Role.Name = $RoleName
$Policy.Roles += $Role
}
$Proxy.SetPolicies($ItemPath, $Policies)
這是真棒,謝謝@Jason。我已經用VBScript和WMI做了,但是你發佈的內容比我想象的要好得多。 – slugster 2011-02-15 06:17:08
(1)我需要爲$ Proxy變量的定義添加-UseDefaultCredential以使其起作用。 (2)我在$ ReportServerUri變量的定義末尾添加了「?wsdl」。感謝您的代碼。 – 2016-11-17 14:14:57