Ich erstellen SSRS-Ordner Sicherheit programmgesteuert mit ReportService2010 und Powershell 4.0. Ich kann Ordner erstellen und dann dem Ordner Sicherheit erfolgreich Benutzer hinzufügen.So entfernen Sie einen Benutzer aus SSRS-Ordner Sicherheit mit Powershell
Meine Forderung ist
ich alle Benutzer auf dem Home-Ordner (Browser Rolle) hinzufügen möchten. Aber für Ordner im Home-Ordner sollten nur ausgewählte Benutzer Zugriff auf ausgewählte Ordner haben.
Aber aufgrund der Vererbung aus dem Home-Ordner haben alle Benutzer Browser Role auf alle Ordner bekommen. Daher muss ich die unerwünschten Benutzer aus der Ordnersicherheit mithilfe von Powershell entfernen. Ich habe so lange gesucht, konnte aber keinen einzigen hilfreichen Beitrag finden.
Wie entferne ich einen Benutzer oder eine Gruppe programmatisch aus der Sicherheit eines Ordners?
EDIT
-Code für das Hinzufügen von Ordnern und Ordner-Sicherheit
Im mit einer globalen Variablen für SSRS-Proxy
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);
}
jemand bitte helfen verwendet. Danke
Welche Code, den Sie bisher geschrieben haben, und hat es Sie Fehler gegeben? Diese Art von Prozess wurde auf dieser Website wiederholt diskutiert, daher sollte es eine Antwort geben, die Ihren Bedürfnissen entspricht, es sei denn, die Situation ist sehr einzigartig. – gravity
Keine Fehler, da ich noch keine ausprobiert habe. Ich finde keine Möglichkeit, die Ordnersicherheit zu entfernen. Ich habe die Frage mit dem Code aktualisiert, den ich verwende, um Ordner zu erstellen und Sicherheit hinzuzufügen. –