2つのPowerShellスクリプトを作成しました。ユーザーにフォルダー名を尋ねます。その名前のフォルダーを作成し、ユーザーにフルコントロールを与え、管理者グループにフルコントロールを与え、継承された権限を取り除き、ユーザーと管理者のみを残します。 2番目のスクリプトは、ユーザー名を要求し、新しいフォルダー内のそのユーザーに変更権限を付与します。
新しく作成したフォルダにファイルまたはフォルダを作成すると、それらの権限が継承されないという点を除いて、意図したとおりに機能します。 [セキュリティ]タブを見て、[詳細設定]をクリックして(アカウントで)編集したところ、2つのことがわかりました。
アカウントの追加は、次の行を中心に展開されます。
$Acl = Get-Acl $Folderpath
$Ar = New-Object system.Security.AccessControl.FileSystemAccessRule($user_account,"FullControl","Allow")
$Acl.Setaccessrule($Ar)
Set-Acl $Folderpath $Acl
$Folderpath
は、フォルダを指す以前に設定された変数です。 $user_account
は、ユーザーアカウント名を含む以前に設定された変数です。
私の質問:
これらのアカウントをフォルダーのアクセス許可に正しく追加する方法(権限は継承され、ユーザーには削除権限があります)、または後でスクリプトで修正する方法はありますか?
より多くの継承フラグが必要です。 3つの引数を渡すだけでACEを作成するために使用しているコンストラクターは、ACEがどのように継承するかを指定しません。
これを試して:
$Ar = New-Object system.Security.AccessControl.FileSystemAccessRule($user_account, "FullControl", "ContainerInherit, ObjectInherit", "None", "Allow")