为什么我检查 ACL 访问时有时会从 FileSystemRights 访问字段获取数字?

为什么我检查 ACL 访问时有时会从 FileSystemRights 访问字段获取数字?

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

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

   FileSystemRights
   ----------------
   Modify, Synchronize

...其他时候我会得到一个数字:

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

   FileSystemRights
   ----------------
          268435456

这个数字是多少?它代表什么意思?

答案1

文件系统权限属性是枚举。但是,一般权限不会被枚举。请参见输出:

[System.Enum]::GetValues([System.Security.AccessControl.FileSystemRights])

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

答案2

这只是一个有根据的猜测。

它是 Windows 较新且独立的分支上的映射驱动器。服务器版本很可能具有可用的附加 ACL 权限,而 Windows 7 Pro 没有这些 ACL 权限的文本描述。因此它仅显示 ACL 的数值。

相关内容