使用Powershell在Reporting Services中设置用户权限
我问这个是因为我是一个n00b当谈到Powershell 如何使用Powershell将特定域用户或组添加到SSRS2005中的特定报告角色(例如内容管理器或浏览器角色)?是否有一个简单的一行或两行脚本来实现它 谢谢使用Powershell在Reporting Services中设置用户权限,powershell,reportingservices-2005,Powershell,Reportingservices 2005,我问这个是因为我是一个n00b当谈到Powershell 如何使用Powershell将特定域用户或组添加到SSRS2005中的特定报告角色(例如内容管理器或浏览器角色)?是否有一个简单的一行或两行脚本来实现它 谢谢 注意:这肯定与编程有关(不是服务器管理),但我也要在SF上问这个问题。对不起,这不仅仅是一行或两行代码,您可以轻松地将以下示例代码包装到可重用函数中: $ReportServerUri = 'http://myreportserver/ReportServer/ReportServ
注意:这肯定与编程有关(不是服务器管理),但我也要在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完成了这项工作,但您发布的内容比我提出的要好得多。(1)我需要将-UseDefaultCredential添加到$Proxy变量的定义中,以使其正常工作。(2) 我在$ReportServerUri变量的定义末尾添加了“?wsdl”。谢谢你的代码。