仕事で下記スクリプトを作ったので記録として残しておく。
機能は、引数で与えたフォルダに対し、セキュリティグループ "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 コメント:
コメントを投稿