1. ホーム
  2. スクリプト・コラム
  3. パワーシェル

Powershellディレクトリフォルダ管理権限継承・割り当て方法

2022-02-04 03:35:53

デフォルトのディレクトリパーミッションは親ディレクトリから継承されますが、確実にその継承をオフにして、指定されたパーミッションを割り当てることができます。
次の例では、カレント・ユーザーに読み取りを許可する "PermissionNoInheritance"のフォルダーを作成し、adminグループはすべての管理権限を取得し、その継承をオフにするように設定します。

# create folder
$Path = 'c:\PermissionNoInheritance'
$null = New-Item -Path $Path -ItemType Directory -ErrorAction SilentlyContinue
 
# get current permissions
$acl = Get-Acl -Path $path
 
# add a new permission for current user
$permission = $env:username, 'Read,Modify', 'ContainerInherit, ObjectInherit', 'None', 'Allow'
$rule = New-Object -TypeName System.Security.AccessControl.FileSystemAccessRule -ArgumentList $permission
$acl.SetAccessRule($rule)
 
# add a new permission for Administrators
$permission = 'Administrators', 'FullControl', 'ContainerInherit, ObjectInherit', 'None', 'Allow'
$rule = New-Object -TypeName System.Security.AccessControl.FileSystemAccessRule -ArgumentList $permission
$acl.SetAccessRule($rule)
 
# disable inheritance
$acl.SetAccessRuleProtection($true, $false)
 
# set new permissions
$acl | Set-Acl -Path $path