仕事で下記スクリプトを作ったので記録として残しておく。
機能は、引数で与えたフォルダに対し、セキュリティグループ "domainname\groupprefix*" の「サブフォルダーとファイルの削除」権限を削除するというもの。
このスクリプトをベースに、色々と応用が効くはず。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | $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 コメント:
コメントを投稿