使用Powershell在Reporting Services中设置用户权限

slu*_*ter 3 powershell reportingservices-2005

我问这个是因为我对Powershell来说是个n00b.

如何使用Powershell将特定域用户或组添加到SSRS2005中的特定报告角色(比如内容管理器浏览器角色)?是否有一个简单的一行或两行脚本来实现它?

谢谢!

注意:这绝对是编程相关的(不是服务器管理员),但我也会在SF上问这个问题.

Jas*_*ome 10

抱歉,它不仅仅是一行或两行,您可以轻松地将以下示例代码包装到可重用的函数中:

$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)
Run Code Online (Sandbox Code Playgroud)

  • (1) 我需要将 -UseDefaultCredential 添加到 $Proxy 变量的定义中才能使其正常工作。(2) 我在 $ReportServerUri 变量定义的末尾添加了“?wsdl”。谢谢你的这段代码。 (2认同)