Como Gerenciar Permissões NTFS Usando PowerShell

  1. Ver Permissões NTFS Com Get-ACL no PowerShell
  2. Exibir Permissões NTFS no PowerShell
  3. Obter ACL em Arquivos Recursivamente no PowerShell
Como Gerenciar Permissões NTFS Usando PowerShell

Gerenciar permissões NTFS com uma GUI é demorado, especialmente ao trabalhar com muitos usuários ou grupos. No entanto, cmdlets específicos do PowerShell podem recuperar e atribuir permissões NTFS.

Este artigo discutirá o gerenciamento de permissões NTFS com o comando Get-ACL.

Ver Permissões NTFS Com Get-ACL no PowerShell

Uma lista de controle de acesso (ou ACL) é uma lista de entradas de controle de acesso (ACE) onde cada lista contém uma ACE que identifica um administrador e especifica direitos de acesso.

O descritor de segurança de um objeto securável pode ser de dois tipos: DACL ou SACL. Uma DACL identifica os usuários e grupos autorizados ou negados para acesso, enquanto uma SACL controla o acesso.

O PowerShell nos permite visualizar rapidamente permissões NTFS usando o cmdlet Get-ACL. Aprenderemos a usar o cmdlet para visualizar permissões NTFS para um arquivo ou pasta nas seções seguintes.

Exibir Permissões NTFS no PowerShell

Tradicionalmente, visualizaríamos uma ACL clicando com o botão direito em uma pasta, clicando em Propriedades, selecionando a guia Segurança e clicando no botão Avançado. Podemos ver um exemplo de como a GUI exibe permissões abaixo.

ACL usando Configurações Avançadas de Segurança

Os exemplos a seguir neste artigo atribuem um caminho à variável $dir.

Código de Exemplo:

$dir = "C:\Windows\Temp"
Get-Acl -Path $dir

Saída:

Path Owner                      Access
---- -----                      ------
Temp DESKTOP-7GI1260\KentMarion BUILTIN\Administrators Allow  FullControl...

No entanto, executar o comando Get-Acl com o parâmetro -Path exibirá apenas e retornará a Lista de Controle de Acesso no nível da pasta. E se quiséssemos verificar a Lista de Controle de Acesso no nível do arquivo?

Obter ACL em Arquivos Recursivamente no PowerShell

Uma das funções vantajosas do PowerShell é o uso do Pipeline. Os pipelines do PowerShell combinam uma série de vários comandos usando um operador de pipeline (|).

Podemos usar o método do pipeline para obter a Lista de Controle de Acesso no nível do arquivo.

Precisamos usar o comando Get-ChildItem para atingir esse cenário. O comando Get-ChildItem busca todos os arquivos e pastas dentro de um diretório.

Vamos usar nossa variável $dir anterior como exemplo.

Código de Exemplo:

$dir = "C:\Windows\Temp"
Get-ChildItem $dir -Recurse | Get-Acl | Format-List | Out-File "C:\PS\output.txt"

No exemplo acima, o parâmetro do switch -Recurse é importante para percorrer todos os arquivos e executar o comando Get-Acl. Fazendo o trecho acima, seremos capazes de obter todas as permissões da lista de controle de acesso de todos os arquivos na pasta Temp.

Também é sugerido usar o comando Out-File para exportar todos os detalhes para um único arquivo de texto, especialmente se você tiver muitos arquivos na pasta alvo.

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
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn