Como obter o Acl para um usuário específico no PowerShell
-
Introdução ao
Get-Acl
no PowerShell - Recuperar ACL para um Usuário Específico
-
Interpretar a Saída do
Get-Acl
- Exemplos Práticos
-
Use
Get-Acl
para Verificar Permissão de um Usuário Específico no PowerShell - Conclusão

PowerShell, uma poderosa ferramenta de automação, fornece inúmeros cmdlets para gerenciar vários aspectos de um ambiente Windows.
Um dos cmdlets fundamentais é Get-Acl
, que significa Lista de Controle de Acesso. Ele permite que administradores recuperem e inspecionem o descritor de segurança (permissões) de um arquivo, pasta ou chave de registro.
Neste artigo, vamos explorar as complexidades de usar Get-Acl
especificamente para um usuário específico. Cobriremos a sintaxe, opções e exemplos práticos para ajudar você a gerenciar efetivamente os direitos de acesso em seu ambiente Windows.
Introdução ao Get-Acl
no PowerShell
Get-Acl
é um cmdlet do PowerShell usado para recuperar a lista de controle de acesso (ACL) de um arquivo, diretório ou chave de registro. A ACL contém uma lista de entradas de controle de acesso (ACEs) que definem quem pode acessar o objeto e qual nível de acesso ele possui.
Entender e gerenciar permissões é crucial para manter um ambiente computacional seguro e organizado. Get-Acl
capacita os administradores ao fornecer um meio de inspecionar e modificar permissões programaticamente.
Sintaxe Básica:
Get-Acl [-Path] <String[]> [-Audit] [-AllCentralAccessPolicies] [-Directory] [-Filter <String>] [-Include <String[]>] [-LiteralPath <String[]>] [-Owner] [-Access <String>] [-UseTransaction] [<CommonParameters>]
Parâmetros Comuns:
-Path |
Especifica o caminho do item para o qual recuperar a ACL. |
-Audit |
Recupera regras de auditoria. |
-Owner |
Recupera informações do proprietário. |
-Access |
Recupera apenas tipos específicos de regras de acesso. |
-UseTransaction |
Permite o uso de uma transação para o cmdlet. |
-InputObject |
Fornece o Descritor de Segurança para o objeto específico. |
-LiteralPath |
Usado para especificar o caminho de um recurso ou arquivo. O valor para este parâmetro deve ser usado exatamente como digitado. |
Opções Avançadas:
-AllCentralAccessPolicies |
Recupera todas as políticas de acesso central. |
-Directory |
Especifica que o item é um diretório. |
-Filter |
Filtra os resultados com base nos critérios especificados. |
-Include |
Recupera apenas os itens especificados. |
-Exclude |
Oimina o item específico. Você deve fornecer o caminho aqui. |
Recuperar ACL para um Usuário Específico
Usando o Parâmetro Path
A maneira mais simples de recuperar a ACL para um usuário específico é utilizando o parâmetro Path
juntamente com o caminho para o item (arquivo, diretório ou chave de registro).
Get-Acl -Path 'C:\Example\File.txt'
Especificando o Usuário Com Where-Object
Para filtrar os resultados para um usuário específico, você pode usar o cmdlet Where-Object
em conjunto com Get-Acl
. Isso permite que você selecione apenas as ACEs relevantes para o usuário desejado.
Get-Acl -Path 'C:\Example\File.txt' | Where-Object { $_.Access | Where-Object { $_.IdentityReference -eq 'DOMAIN\User' } }
O código está procurando por regras de acesso específicas dentro da ACL do arquivo C:\Example\File.txt
que pertencem ao usuário com a identidade 'DOMAIN\User'
. Se houver regras correspondentes, elas serão exibidas na saída. Caso contrário, a saída será vazia.
Interpretar a Saída do Get-Acl
Regras de Acesso
A saída do Get-Acl
conterá informações sobre as regras de acesso. Cada regra especifica um usuário ou grupo, um tipo de acesso (por exemplo, Ler, Escrever) e se a regra permite ou nega esse acesso.
Regras de Auditoria
Se o parâmetro -Audit
for usado, as regras de auditoria também serão incluídas. Essas regras especificam quais tipos de acesso devem ser auditados para um usuário ou grupo específico.
Proprietário e Grupo
Get-Acl
também pode recuperar informações sobre o proprietário do item e o grupo associado a ele.
Exemplos Práticos
Exemplo 1: Recuperando ACL para um Arquivo
O comando abaixo recupera a Lista de Controle de Acesso (ACL) para o arquivo localizado em C:\Example\File.txt
. Este comando retornará informações sobre as permissões e regras de acesso associadas àquele arquivo específico.
Get-Acl -Path 'C:\Example\File.txt'
Exemplo 2: Obtendo ACL para um Diretório
O comando abaixo funciona da mesma forma que o comando acima, mas recupera a ACL para um diretório diferente.
Get-Acl -Path 'C:\Example\Directory'
Exemplo 3: Verificando Permissões da Chave de Registro
O comando abaixo recupera a Lista de Controle de Acesso (ACL) para a chave de registro localizada em HKLM:\SOFTWARE\ExampleKey
. Este comando retornará informações sobre as permissões e regras de acesso associadas àquela chave de registro específica.
Get-Acl -Path 'HKLM:\SOFTWARE\ExampleKey'
Exemplo 4: Filtrando por Tipo de Acesso:
Você pode usar o parâmetro -Access
para recuperar apenas tipos específicos de regras de acesso (por exemplo, Ler, Escrever).
Get-Acl -Path 'C:\Example\File.txt' -Access Read, Write
Exemplo 5: Formatação de Saída:
Você pode formatar a saída usando cmdlets como Format-Table
ou Format-List
para melhor legibilidade.
Get-Acl -Path 'C:\Example\File.txt' | Format-Table -Property Path, AccessToString
Use Get-Acl
para Verificar Permissão de um Usuário Específico no PowerShell
Às vezes, precisamos verificar permissões para um usuário específico. Precisamos disso para vários propósitos, como controlar o acesso a um arquivo específico. Com a ajuda do PowerShell, podemos facilmente ver as permissões para acessar o arquivo.
Abaixo está um script do PowerShell através do qual vamos verificar o status das permissões para os Administradores do Sistema.
Get-Acl g:\ | Select-Object -ExpandProperty Access | Where-Object identityreference -EQ "BUILTIN\Administrators"
Esse código recupera as informações de controle de acesso para o diretório localizado em g:\
e, em seguida, filtra essas informações para mostrar apenas as regras de acesso para o grupo "Administrators"
. Isso pode ser útil para auditoria ou gerenciamento de permissões para um diretório específico.
A saída do código acima será uma lista de regras de acesso especificamente atribuídas ao grupo "Administrators"
para o diretório localizado em g:\
. A saída incluirá detalhes sobre as permissões concedidas, a identidade à qual as permissões se aplicam e outras informações relacionadas.
FileSystemRights : 268435456
AccessControlType : Allow
IdentityReference : BUILTIN\Administrators
IsInherited : False
InheritanceFlags : ContainerInherit, ObjectInherit
PropagationFlags : InheritOnly
FileSystemRights : FullControl
AccessControlType : Allow
IdentityReference : BUILTIN\Administrators
IsInherited : False
InheritanceFlags : None
PropagationFlags : None
Conclusão
Get-Acl
é um cmdlet poderoso que desempenha um papel crucial na gestão de permissões dentro de um ambiente Windows. Ao entender sua sintaxe e utilizar seus vários parâmetros, os administradores podem recuperar e analisar informações de controle de acesso de forma eficiente.
Esse conhecimento é inestimável para manter um ambiente computacional seguro e organizado.
Lembre-se de agir com cautela ao fazer alterações nas permissões e sempre ter backups adequados antes de modificar ACLs. Com Get-Acl
como parte do seu conjunto de ferramentas do PowerShell, você terá uma ferramenta valiosa para manter um ambiente Windows seguro e bem gerenciado.
Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.
LinkedIn