为什么在检查 ACL 访问时有时会从 FileSystemRights 访问字段中取回数字?

lee*_*d00 4 windows ntfs binary file-permissions

有时我会运行这样的命令,然后我会返回一些易于阅读、易于解释的文本:

    PS D:\test> (get-acl test.txt).Access | Select FileSystemRights

   FileSystemRights
   ----------------
   Modify, Synchronize
Run Code Online (Sandbox Code Playgroud)

...其他时候我会拿回一个号码:

    PS D:\test> (get-acl test2.txt).Access | Select FileSystemRights

   FileSystemRights
   ----------------
          268435456
Run Code Online (Sandbox Code Playgroud)

数字是什么,它是什么意思?

jsc*_*ott 5

FileSystemRights属性是一个枚举。但是,不会列举通用权利。见输出:

[System.Enum]::GetValues([System.Security.AccessControl.FileSystemRights])
Run Code Online (Sandbox Code Playgroud)

访问掩码格式定义的高四位通用访问权限。这些权限是 GENERIC_ALL (268435456) -- 您所看到的 GENERIC_EXECUTE (536870912)、GENERIC_WRITE (1073741824) 和 GENERIC_READ(2147483648)