ReportService2010とPowershell 4.0を使用してプログラムでSSRSフォルダセキュリティを作成しています。私はフォルダを作成してから、ユーザーをフォルダセキュリティに正常に追加できます。Powershellを使用してSSRSフォルダセキュリティからユーザーを削除する方法
私の要件は、私はホームフォルダ(ブラウザの役割)にすべてのユーザーを追加したい
です。しかし、ホームフォルダの下にあるフォルダの場合、選択したユーザーだけが選択したフォルダにアクセスできる必要があります。
しかし、ホームフォルダの継承のため、すべてのユーザーはすべてのフォルダに対してブラウザロールを取得しています。だから私はPowershellを使用してフォルダのセキュリティから不要なユーザーを削除する必要があります。私はとても長い間探してきましたが、1つの役に立つポストを見つけることができませんでした。
フォルダのセキュリティからユーザーまたはグループをプログラムで削除するにはどうすればよいですか?
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);
}
誰かが助けてくださいSSRSプロキシのグローバル変数を使用して、フォルダおよびフォルダのセキュリティ
イムを追加するために使用
EDIT
コード。 ありがとう
SQLShackにこれと類似したスクリプトについて書きましたか?この種のプロセスはこのサイトで繰り返し議論されているので、状況が非常にユニークでない限り、ニーズに合った答えが必要です。 – gravity
私はまだ試していないのでエラーはありません。私は、フォルダのセキュリティを削除する方法を見つけることはありません。私はフォルダを作成し、セキュリティを追加するために使用しているコードで質問を更新しました。 –