Get-Acl
Возвращает дескриптор безопасности для ресурса, например файла или раздела реестра.
Синтаксис
Get-Acl
[[-Path] <String[]>]
[-Audit]
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[<CommonParameters>]
Get-Acl
-InputObject <PSObject>
[-Audit]
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[<CommonParameters>]
Get-Acl
[-LiteralPath <String[]>]
[-Audit]
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[<CommonParameters>]
Описание
Этот командлет доступен только на платформе Windows.
Командлет Get-Acl
получает объекты, представляющие дескриптор безопасности файла или ресурса. Дескриптор безопасности содержит списки управления доступом (ACL) ресурса. В списке ACL указаны разрешения пользователей и групп пользователей на доступ к ресурсу.
Начиная с Windows PowerShell 3.0, можно использовать параметр InputObject для Get-Acl
получения дескриптора безопасности объектов, у которых нет пути.
Примеры
Пример 1. Получение ACL для папки
В этом примере возвращается дескриптор C:\Windows
безопасности каталога.
Get-Acl C:\Windows
Пример 2. Получение ACL для папки с помощью подстановочных знаков
В этом примере получается путь PowerShell и SDDL для всех .log
файлов в каталоге C:\Windows
, имена которых начинаются с s
.
Get-Acl C:\Windows\s*.log | Format-List -Property PSPath, Sddl
Команда использует Get-Acl
командлет для получения объектов, представляющих дескрипторы безопасности каждого файла журнала. Он использует оператор конвейера (|
) для отправки результатов командлету Format-List
. Команда использует параметр Format-List
Property для отображения только свойств PsPath и SDDL каждого объекта дескриптора безопасности.
Списки часто используются в PowerShell, так как длинные значения отображаются усеченными в таблицах.
Значения SDDL полезны системным администраторам, так как они являются простыми текстовыми строками, содержащими всю информацию в дескрипторе безопасности. Их легко передавать и хранить, а также при необходимости анализировать.
Пример 3. Получение количества записей аудита для ACL
В этом примере возвращаются дескрипторы .log
безопасности файлов в каталоге C:\Windows
, имена которых начинаются с s
.
Get-Acl C:\Windows\s*.log -Audit | ForEach-Object { $_.Audit.Count }
Он использует параметр audit для получения записей аудита из SACL в дескрипторе безопасности.
Затем он использует ForEach-Object
командлет для подсчета количества записей аудита, связанных с каждым файлом. Результат представляет собой список соответствующих чисел.
Пример 4. Получение ACL для раздела реестра
В этом примере командлет используется Get-Acl
для получения дескриптора безопасности подраздела Control (HKLM:\SYSTEM\CurrentControlSet\Control
) реестра.
Get-Acl -Path HKLM:\System\CurrentControlSet\Control | Format-List
Параметр Path задает подраздел Control. Оператор конвейера (|
) передает дескриптор безопасности, Get-Acl
который получает в Format-List
команду, которая форматирует свойства дескриптора безопасности в виде списка, чтобы они были легко прочитаны.
Пример 5. Получение ACL с помощью **InputObject**
В этом примере используется параметр InputObject для Get-Acl
получения дескриптора безопасности объекта подсистемы хранения.
Get-Acl -InputObject (Get-StorageSubSystem -Name S087)
Параметры
-Audit
Возвращает данные аудита для дескриптора безопасности из системного списка управления доступом (SACL).
Тип: | SwitchParameter |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Exclude
Исключает указанные элементы. Значение этого параметра определяет параметр Path. Введите элемент пути или шаблон, например *.txt
. Разрешено использовать подстановочные знаки.
Тип: | String[] |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | True |
-Filter
Задает фильтр в формате или на языке поставщика. Значение этого параметра определяет параметр Path. Синтаксис фильтра, включая использование подстановочных знаков, зависит от поставщика. Фильтры более эффективны, чем другие параметры, так как поставщик применяет их при получении объектов, а не фильтровать объекты после их получения.
Тип: | String |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | True |
-Include
Получает только указанные элементы. Значение этого параметра определяет параметр Path. Введите элемент пути или шаблон, например *.txt
. Разрешено использовать подстановочные знаки.
Тип: | String[] |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | True |
-InputObject
Возвращает дескриптор безопасности для указанного объекта. Введите переменную, содержащую объект, либо команду, которая его возвращают.
Невозможно передать объект, отличный от пути, в Get-Acl
. Вместо этого используйте параметр InputObject явным образом в команде.
Этот параметр впервые появился в Windows PowerShell 3.0.
Тип: | PSObject |
Position: | Named |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-LiteralPath
Задает путь к ресурсу. В отличие от параметра Path, значение параметра LiteralPath используется в том виде, в котором оно введено. Никакие символы не интерпретируются как знаки подстановки. Если путь содержит escape-символы, заключите его в одинарные кавычки. Одинарные кавычки говорят PowerShell не интерпретировать какие-либо символы как escape-последовательности.
Этот параметр впервые появился в Windows PowerShell 3.0.
Тип: | String[] |
Aliases: | PSPath |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-Path
Задает путь к ресурсу. Get-Acl
возвращает дескриптор безопасности ресурса, указанного путем. Разрешено использовать подстановочные знаки. Если параметр Path не указан, Get-Acl
возвращает дескриптор безопасности текущего каталога.
Имя параметра (Path) указывать необязательно.
Тип: | String[] |
Position: | 1 |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | True |
Входные данные
В этот командлет можно передать по конвейеру строку, содержащую путь.
Выходные данные
Этот командлет возвращает объект, представляющий списки управления доступом, которые он получает. Тип объекта зависит от типа списка ACL.
Примечания
Этот командлет доступен только на платформах Windows.
По умолчанию Get-Acl
отображается путь PowerShell к ресурсу (<provider>::<resource-path>
), владелец ресурса и "Access", список (массив) записей управления доступом в списке управления доступом (DACL) для ресурса. Список DACL контролируется владельцем ресурса.
При форматировании результата в виде списка (Get-Acl | Format-List
) в дополнение к пути, владельцу и списку доступа PowerShell отображает следующие свойства и значения свойств:
- Группа: группа безопасности владельца.
- Аудит: список (массив) записей в списке системного управления доступом (SACL). В списке SACL указываются типы попыток доступа, для которых ОС Windows создает записи аудита.
- Sddl: дескриптор безопасности ресурса, отображаемого в одной текстовой строке в формате языка определения дескриптора безопасности. PowerShell использует метод GetSddlForm дескриптора безопасности для получения этих данных.
Так как Get-Acl
поддерживается поставщиками файловой системы и реестра, вы можете Get-Acl
просматривать ACL объектов файловой системы, таких как файлы и каталоги, а также объекты реестра, такие как разделы реестра и записи.
Связанные ссылки
PowerShell