Como Gerenciar Permissões NTFS Usando PowerShell
-
Ver Permissões NTFS Com
Get-ACL
no 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