- 参考:Retrieving security descriptor and getting number for FileSystemRights
Get-Aclで取得したファイル・フォルダのアクセス権(FileSystemRights)が、数字表記される場合があります。 (“FullControl"とかではなく、"2147483648"とか表記されるものがある)
数字で表記されるのはなぜかというと、
システム側でファイルやフォルダのアクセスマスク(32ビット、2進数)
に、上位ビット(Generic Access Mask)を設定しているためのようです。
アクセスマスクについては、下記リンクをご参照ください。
How Permission work
Access Mask Format
Get-aclコマンドレットでは、
FilesystemRightsプロパティを参照します。
FileSystemRightsプロパティは、
上記リンク中のアクセスフォーマットにおける、
下位ビット(Standard Access Rights と Object-Specific Access Rights)
の設定値のみ、対応する文字列(“FullControl"など)にして出力しています。
よって、上位ビット(Generic Access Mask)が存在する場合は対応する文字列がないため、
32ビットのアクセスマスクを10進数にした値を返します。
上位ビット(Generic Access Mask)に変更を加えるのは、
GUIからできなそうなので、調査・説明を割愛します。
Creator Owner に付いているので、
システム側で自動設定してそうな気がします。
使い所は「?」ですが、諸々あり、
Get-Aclで取得したファイル・フォルダのアクセス権が数字表記された場合に、
対応するアクセス権に変換するスクリプトを作成してみました。
第一引数に出力された10進数を入れると、対応するアクセス権限を表示します。
参考URL全て
create ownerという特殊グループの説明
Retrieving security descriptor and getting number for FileSystemRights
How Permission work
Access Mask Format
Win32_ACE class
FileSystemRights 列挙型
PowerShell/PowerShellで2進数、10進数、16進数を変換する方法
アクセス制御リストACL (基礎概要部分)
Windows Installer で配置する resources の DACL を変更する方法
Windows ACE の AccessMask(マスク)ビットフラグの対応関係
おわり