PowerShellでファイルやフォルダのアクセス権を設定する

PowerShellWindowsファイル・フォルダのアクセス権を設定する方法です。

#ファイルやディレクトリ名
$path = "C:\TEMP"

#ユーザ名やグループ名(ドメイン名またはコンピュータ名から指定)
$userGroup = "MYPC\MyUser"

$acl = Get-Acl $path
$permission = ($userGroup,
                [System.Security.AccessControl.FileSystemRights]::FullControl,
                [System.Security.AccessControl.InheritanceFlags]::ObjectInherit,
                [System.Security.AccessControl.PropagationFlags]::None,
                [System.Security.AccessControl.AccessControlType]::Allow)
$accessRule = New-Object -TypeName System.Security.AccessControl.FileSystemAccessRule $permission
$acl.SetAccessRule($accessRule)
$acl | Set-Acl $path

 
肝になる設定は$permission変数ですが、ここがわかりずらいです。
 
設定値にenumを使っているので、ISEでインテリセンスが効かせると少しわかりやすくなります。


それぞれのenumの値と説明はMSのサイトに日本語で出ているので、リンクを貼っておきます。

FileSystemRights 列挙体 (System.Security.AccessControl)

InheritanceFlags 列挙体 (System.Security.AccessControl)

PropagationFlags 列挙体 (System.Security.AccessControl)

AccessControlType 列挙体 (System.Security.AccessControl)