Get-Acl (Microsoft.PowerShell.Security)
Get-Acl
- Модуль:
- Microsoft.PowerShell.Security
Получает дескриптор безопасности для ресурса, например файла или раздела реестра.
Синтаксис
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. Получите список управления доступом для папки.
В этом примере возвращается дескриптор безопасности каталога C:\Windows.
Get-Acl C:\WindowsПример 2. Получение списка управления доступом для папки с использованием подстановочных знаков.
В этом примере получается путь PowerShell и SDDL для всех файлов .log в каталоге C:\Windows, имена которых начинаются с s.
Get-Acl C:\Windows\s*.log | Format-List -Property PSPath, SddlКоманда использует командлет Get-Acl для получения объектов, представляющих дескрипторы безопасности каждого файла журнала. Он использует оператор конвейера (|) для отправки результатов в командлет Format-List. Команда использует параметр Property Format-List для отображения только свойств 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
- Позиция:
Именованный
- Значение по умолчанию:
None
- Необходимый:
False
- Примите ввод конвейера:
False
- Принимайте подстановочные знаки:
False
-Exclude
Пропускает указанные элементы. Значение этого параметра определяет параметр Path. Введите элемент пути или шаблон, например *.txt. Подстановочные знаки разрешены.
- Тип :
String[]
- Позиция:
Именованный
- Значение по умолчанию:
None
- Необходимый:
False
- Примите ввод конвейера:
False
- Принимайте подстановочные знаки:
True
-Filter
Указывает фильтр в формате или языке поставщика. Значение этого параметра определяет параметр Path. Синтаксис фильтра, включая использование подстановочных знаков, зависит от поставщика. Фильтры более эффективны, чем другие параметры, поскольку поставщик применяет их при получении объектов, а не заставляет PowerShell фильтровать объекты после их получения.
- Тип :
String
- Позиция:
Именованный
- Значение по умолчанию:
None
- Необходимый:
False
- Примите ввод конвейера:
False
- Принимайте подстановочные знаки:
True
-Include
Получает только указанные элементы. Значение этого параметра определяет параметр Path. Введите элемент пути или шаблон, например *.txt. Подстановочные знаки разрешены.
- Тип :
String[]
- Позиция:
Именованный
- Значение по умолчанию:
None
- Необходимый:
False
- Примите ввод конвейера:
False
- Принимайте подстановочные знаки:
True
-InputObject
Получает дескриптор безопасности для указанного объекта. Введите переменную, содержащую объект, или команду, получающую объект.
Вы не можете передать объект, отличный от пути, в Get-Acl. Вместо этого используйте параметр InputObject явно в команде.
Этот параметр представлен в Windows PowerShell 3.0.
- Тип :
PSОбъект
- Позиция:
Именованный
- Значение по умолчанию:
None
- Необходимый:
True
- Примите ввод конвейера:
False
- Принимайте подстановочные знаки:
False
-LiteralPath
Указывает путь к ресурсу. В отличие от Path, значение параметра LiteralPath используется точно так, как оно введено. Никакие символы не интерпретируются как подстановочные знаки. Если путь содержит escape-символы, заключите его в одинарные кавычки. Одинарные кавычки сообщают PowerShell не интерпретировать никакие символы как escape-последовательности.
Этот параметр представлен в Windows PowerShell 3.0.
- Тип :
String[]
- Псевдонимы:
PSPath
- Позиция:
Именованный
- Значение по умолчанию:
None
- Необходимый:
False
- Примите ввод конвейера:
True
- Принимайте подстановочные знаки:
False
-Path
Указывает путь к ресурсу. Get-Acl получает дескриптор безопасности ресурса, указанного в пути. Подстановочные знаки разрешены. Если вы опустите параметр Path, Get-Acl получит дескриптор безопасности текущего каталога.
Имя параметра («Путь») не является обязательным.
- Тип :
String[]
- Позиция:
1
- Значение по умолчанию:
None
- Необходимый:
False
- Примите ввод конвейера:
True
- Принимайте подстановочные знаки:
True
Входы
Строка
Вы можете передать строку, содержащую путь к этому командлету.
Выходы
FileSecurity
Безопасность каталога
Безопасность реестра
Этот командлет возвращает объект, представляющий полученные списки ACL. Тип объекта зависит от типа ACL.
Примечания
Этот командлет доступен только на платформах Windows.
По умолчанию Get-Acl отображает путь PowerShell к ресурсу (<provider>::
Когда вы форматируете результат в виде списка (Get-Acl | Format-List), помимо пути, владельца и списка доступа, PowerShell отображает следующие свойства и значения свойств:
- Группа: группа безопасности владельца.
- Аудит: список (массив) записей в системном списке управления доступом (SACL). SACL определяет типы попыток доступа, для которых Windows создает записи аудита.
- Sddl: дескриптор безопасности ресурса, отображаемый в виде одной текстовой строки в формате языка определения дескриптора безопасности. PowerShell использует метод дескрипторов безопасности GetSddlForm для получения этих данных.
Поскольку Get-Acl поддерживается поставщиками файловой системы и реестра, вы можете использовать Get-Acl для просмотра ACL объектов файловой системы, таких как файлы и каталоги, и объекты реестра, такие как ключи и записи реестра.