Назад | Перейти на главную страницу

Почему я иногда получаю числа обратно из поля доступа FileSystemRights при проверке доступа ACL?

Иногда я запускаю такую ​​команду и получаю легко читаемый и легко интерпретируемый текст:

    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

Что это за число и что оно означает?

В FileSystemRights атрибут - это перечисление. Однако общие права не будут перечислены. См. Вывод:

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

В Формат маски доступа определяет верхние четыре бита для общие права доступа. Это права GENERIC_ALL (268435456) - то, что вы видели, GENERIC_EXECUTE (536870912), GENERIC_WRITE (1073741824) и GENERIC_READ (2147483648).

Это только обоснованное предположение.

Это подключенный диск в новой и отдельной ветке Windows. Версия для сервера, скорее всего, имеет дополнительные права ACL, а Windows 7 Pro не имеет текстовых описаний этих прав ACL. Поэтому он показывает только числовое значение ACL.