Como obter o Acl para um usuário específico no PowerShell

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

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.

Está gostando dos nossos tutoriais? Inscreva-se no DelftStack no YouTube para nos apoiar na criação de mais vídeos tutoriais de alta qualidade. Inscrever-se
MD Aminul Islam avatar MD Aminul Islam avatar

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

Artigo relacionado - PowerShell Script