Я создаю защиту папок SSRS программно с помощью ReportService2010 и Powershell 4.0. Я могу создавать папки, а затем успешно добавлять пользователей в папку.Как удалить пользователя из безопасности папок SSRS с помощью Powershell
Мое требование
Я хочу добавить всех пользователей в домашней папке (Browser роль). Но для папок под папкой «Главная» только выбранные пользователи должны иметь доступ к выбранным папкам.
Но из-за наследования из Домашней папки все пользователи получили роль браузера во всех папках. Поэтому мне нужно удалить нежелательных пользователей из безопасности папок с помощью Powershell. Я искал так долго, но не смог найти ни одного полезного сообщения.
Как я могу удалить пользователя или группу из безопасности Папки Programmatically?
EDIT
Код, используемый для добавления папок и папок безопасности
Im используя глобальную переменную для SSRS прокси
function Add-SSRSFolder(
[Parameter(Position=0,Mandatory=$true)]
[string]$folderName,
[Parameter(Position=1,Mandatory=$true)]
[string]$Parent
)
{
#get autogenerated namespace
$type = $ssrsProxy.GetType().Namespace
$datatype = ($type + '.Property')
#Here we create a new object of Property type and set properties
$property = New-Object ($datatype);
$property.Name = “Description”
$property.Value = “”
#Report SSRS Properties
#we need a property array to pass to the CreateFolder method
$numproperties = 1
$properties = New-Object ($datatype + '[]')$numproperties
$properties[0] = $property;
write-host "Creating New Folder...... $foldername"
$newFolder = $ssrsProxy.CreateFolder($foldername, $Parent, $properties);
}
function Add-SSRSItemSecurity
(
[Parameter(Position=0,Mandatory=$true)]
[string]$itemPath,
[Parameter(Position=1,Mandatory=$true)]
[string]$groupUserName,
[Parameter(Position=2,Mandatory=$true)]
[string]$role,
[Parameter(Position=3)]
[bool]$inherit=$true
)
{
$type = $ssrsProxy.GetType().Namespace;
$policyType = "{0}.Policy" -f $type;
$roleType = "{0}.Role" -f $type;
$policies = $ssrsProxy.GetPolicies($itemPath, [ref]$inherit);
$Policy = $policies |
Where-Object { $_.GroupUserName -eq $groupUserName } |
Select-Object -First 1
if (-not $Policy) {
$Policy = New-Object ($policyType)
$Policy.GroupUserName = $GroupUserName
$Policy.Roles = @()
$Policies += $Policy
$msg = "[Add-SSRSItemSecurity()] Adding new policy: '{0}'" -f $GroupUserName
Write-Host $msg
}
$r = $Policy.Roles |
Where-Object { $_.Name -eq $role } |
Select-Object -First 1
if (-not $r) {
$r = New-Object ($roleType)
$r.Name = $role
$Policy.Roles += $r
$msg = "[Add-SSRSItemSecurity()] Adding new role: '{0}'" -f $role
Write-Host $msg
}
$ssrsProxy.SetPolicies($itemPath,$policies);
}
Кто-то пожалуйста, помогите. Thanks
Какой код вы написали до сих пор, и он дал вам какие-либо ошибки? Этот процесс неоднократно обсуждался на этом сайте, поэтому должен быть ответ, который соответствует вашим потребностям, если только ситуация не уникальна. – gravity
Нет ошибок, поскольку я еще не пробовал. Я не нашел способ удалить защиту папок. Я обновил вопрос с помощью кода, который я использую, для создания папок и добавления безопасности. –