Использование Powershell для установки разрешений пользователей в службах Reporting Services - PullRequest
3 голосов
/ 18 июня 2010

Я спрашиваю это, потому что я n00b, когда дело доходит до Powershell.

Как использовать Powershell для добавления определенного пользователя или группы домена в определенную роль отчетов в SSRS2005 (например, роль Content Manager или Браузер )?Есть ли простой сценарий, состоящий из одной или двух строк?

Спасибо!

Примечание: это определенно связано с программированием (не администратором сервера), но я также собираюсь спроситьэто на SF.

1 Ответ

10 голосов
/ 15 февраля 2011

Извините, это не просто одна или две строки, но вы можете легко обернуть следующий пример кода в функцию многократного использования:

$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)
...