Поделиться через


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 (|). Команда использует параметр 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).

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Exclude

Исключает указанные элементы. Значение этого параметра определяет параметр Path. Введите элемент пути или шаблон, например *.txt. Разрешено использовать подстановочные знаки.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-Filter

Задает фильтр в формате или на языке поставщика. Значение этого параметра определяет параметр Path. Синтаксис фильтра, включая использование подстановочных знаков, зависит от поставщика. Фильтры более эффективны, чем другие параметры, так как поставщик применяет их при получении объектов, а не фильтрует объекты PowerShell после их извлечения.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-Include

Получает только указанные элементы. Значение этого параметра определяет параметр Path. Введите элемент пути или шаблон, например *.txt. Разрешено использовать подстановочные знаки.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-InputObject

Возвращает дескриптор безопасности для указанного объекта. Введите переменную, содержащую объект, либо команду, которая его возвращают.

Нельзя передать объект, отличный от пути, в Get-Acl. Вместо этого настроить параметр InputObject прямо в команде.

Этот параметр впервые появился в Windows PowerShell 3.0.

Type:PSObject
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-LiteralPath

Задает путь к ресурсу. В отличие от параметра Path, значение параметра LiteralPath используется в точности так, как вводится. Никакие символы не интерпретируются как знаки подстановки. Если путь содержит escape-символы, заключите его в одинарные кавычки. Одинарные кавычки предписывают PowerShell не интерпретировать какие-либо символы как escape-последовательности.

Этот параметр впервые появился в Windows PowerShell 3.0.

Type:String[]
Aliases:PSPath
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Path

Задает путь к ресурсу. Get-Acl получает дескриптор безопасности ресурса, указанного путем. Разрешено использовать подстановочные знаки. Если опустить параметр Path , Get-Acl возвращает дескриптор безопасности текущего каталога.

Имя параметра (Path) указывать необязательно.

Type:String[]
Position:1
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:True

Входные данные

String

В этот командлет можно передать по конвейеру строку, содержащую путь.

Выходные данные

FileSecurity

DirectorySecurity

RegistrySecurity

Этот командлет возвращает объект , представляющий списки управления доступом, которые он получает. Тип объекта зависит от типа списка 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 объектов файловой системы, таких как файлы и каталоги, и объектов реестра, таких как разделы реестра и записи.