質問: New-Object System.Security.AccessControl.FileSystemAccessRule $permission $acl.SetAccessRule($accessRule) $acl | Set-Acl $folder_path $cnt++ } ```
回答: はじめまして。 未だ回答がついていませんが、解決したでしょうか。 (3)部分のみ処理する汚いコードを提示してみます。このままだと偉い人に怒られると思います。 ``` # 現在のACLを取得 $ACL = Get-Acl $folder_path # 削除対象のアクセスルールを抽出し削除する ## アクセスルール毎にループ ## アクセスルールのユーザーが、ドメインのIDである ## 同、フォルダーのオーナーではない(つまり自分ではない) ## 同、アクセス可能ユーザーリストに含まれない ## 条件を満たした(つまり不要な)ルールを削除 $ACL.Access |? { $_.IdentityReference -match "^$env:userdomain\\" ` -and $_.IdentityReference -ne $ACL.Owner ` -and $user_array -notcontains ($_.IdentityReference.Value -split('\\'))[1] } |% { $ACL.Remove-AccessRule($_) } # ACLを反映 Set-Acl $folder_path $ACL ``` 追記: 後日、類似のことを試していたところ、この書き方だと削除できないものがあることを確認しました。 とはいいつつ、放置されているようでもあるので、記載コードの修正は行いませんので悪しからず。