Como Gerenciar Permissões NTFS Usando PowerShell
-
Ver Permissões NTFS Com
Get-ACLno PowerShell - Exibir Permissões NTFS no PowerShell
- Obter ACL em Arquivos Recursivamente no 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.

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.
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn