仕事で下記スクリプトを作ったので記録として残しておく。
機能は、引数で与えたフォルダに対し、セキュリティグループ "domainname\groupprefix*" の「サブフォルダーとファイルの削除」権限を削除するというもの。
このスクリプトをベースに、色々と応用が効くはず。
$Path = $args[0]
$acl = Get-Acl $Path
$groupAccess = $acl.access | where {$_.IdentityReference -like "domainname\groupprefix*"}
if ($groupAccess){
$Access = $groupAccess.IdentityReference
"Modifying Permissions For $Access"
$Permission = $groupAccess.FileSystemRights
"Before: $Permission"
$Permission = ($Permission -replace "DeleteSubdirectoriesAndFiles(, )*","") -replace ", $", ""
"After: $Permission"
$inherit = $groupAccess.InheritanceFlags
$propagation = $groupAccess.PropagationFlags
$AccessRule = New-Object system.security.AccessControl.FileSystemAccessRule($Access, $Permission, $inherit, $propagation, "Allow")
$AccessModification = New-Object system.security.AccessControl.AccessControlModification
$AccessModification.value__ = 2
$Modification = $False
$acl.ModifyAccessRule($AccessModification, $AccessRule, [ref]$Modification) | out-null
}
Set-Acl -aclobject $acl -Path $Path
0 件のコメント:
コメントを投稿