Entrar
Home
Biblioteca
Wiki
Aprender
Galeria
Downloads
Suporte
Fóruns
Blogs
Resources For IT Professionals
Brasil (Português)
Россия (Pусский)
中国(简体中文)
United States (English)
Escrever um artigo
Wikis - Detalhes da Página
Primeira publicação por
Matheus Kamphorst
(Microsoft Community Contributor, Microsoft Partner)
Quando:
8 out 2012 8:43
Última revisão por
Matheus Kamphorst
(Microsoft Community Contributor, Microsoft Partner)
Quando:
23 out 2012 11:22
Revisões:
8
Comentários:
2
Tópicos Populares
Active Directory
Windows 7
SQL Server
Hyper-V
Ajuda & Opinião
Sobre o TechNet Wiki
Como Participar
Iniciando
Como Contribuir
Regras
Código de Conduta
Conselho da Comunidade
Como Obter Ajuda
Opnião sobre o Site
Popular Contributors
Brasil (Português)
»
artigos TechNet
»
Manipulando Permissões de pastas com Powershell
Manipulando Permissões de pastas com Powershell
Artigo
Histórico
Manipulando Permissões de pastas com Powershell
Referencias
Introdução
É comum termos que criar pastas ou usuários em scripts de automação, uma parte importante desse processo é configurar as permissões nas pastas e outras propriedades
como proprietário, neste artigo vamos aprender a utilizar esse recurso presente no Powershell.
Configurando permissões
Para configurarmos permissões nos diretórios utilizando Powershell, utilizamos uma combinação entre os cmdlts Get-Acl, Set-Acl e o objeto System.Security.AccessControl.FileSystemAccessRule,
Abaixo um breve exemplo sobre a utilização desses itens em conjunto.
$ACL = Get-Acl “E:\Nova Pasta”
$ACLRULE = New-Object System.Security.AccessControl.FileSystemAccessRule(“Administrator”,”FullControl”,”ContainerInherit”,”None”,”Allow”)
$ACL.AddAccessRule($ACLRULE)
Set-Acl “E:\Nova Pasta” $acl
Explicando então o que foi feito, utilizamos o cmdlet Get-Acl para criar um objeto contendo as permissões da pasta “Nova Pasta”
utilizamos o New-Object para criar um novo objeto do tipo FileSystemAccessRule, contendo as informações da permissão que queremos adicionar a pasta.
Utilizamos o método AddAccessRule passando como parâmetro o objeto FileSystemAccessRule para que essa regra seja adicionada ao nosso objeto ACL
Utilizamos o cmdlet Set-Acl para aplicar as permissões contidas no objeto ACL a pasta “Nova Pasta”
Dessa forma conseguimos adicionar permissões em pastas utilizando Powershell, caso queria adicionar permissões a um usuário do domínio utilize o formato user@dominio.local,
Para alterarmos as permissões que queremos aplicar trocamos somente os parâmetros passados para o FileSystemAccessRule no momento de criação por exemplo ao invés de darmos Fullcontrol queremos que o usuário HowToServer tenha permissões de somente leitura.
$ACLRULE = New-Object System.Security.AccessControl.FileSystemAccessRule(“HowToServer”,”Read”,”ContainerInherit”,”None”,”Allow”)
Explicações, passamos alguns parâmetros determinando a regra de permissão que queremos criar, o primeiro parâmetro é o usuário, podendo ser o nome simples ou com a extensão do domínio (“howtoserver@contoso.local”), segundo parâmetros é o tipo de permissão, temos as opções;
ListDirectory
ReadData
WriteData
CreateFiles
CreateDirectories
AppendData
ReadExtendedAttributes
WriteExtendedAttributes
Traverse
ExecuteFile
DeleteSubdirectoriesAndFiles
ReadAttributes
WriteAttributes
Write
Delete
ReadPermissions
Read
ReadAndExecute
Modify
ChangePermissions
TakeOwnership
Synchronize
FullControl
O terceiro parâmetro é a quais itens a permissão vai ser herdada e as opções são:
None.
ContainerInherit.
ObjectInherit.
Se quisermos que a permissão seja herdada para Pastas e Arquivos temos que criar duas ACLs uma para pastas e outra para arquivos e adicionar as duas ao diretório.
$ACL = Get-Acl 'E:\Nova Pasta'
$ACLRULE = New-Object
System.Security.AccessControl.FileSystemAccessRule(“Matheus”,”Read”,”ContainerInherit","none",”Allow”)
$ACL.AddAccessRule($ACLRULE)
$ACLRULE = New-Object System.Security.AccessControl.FileSystemAccessRule(“Admin”,”Read”,”ObjectInherit","none",”Allow”)$ACL.AddAccessRule($ACLRULE)
Set-Acl 'E:\Nova Pasta' $ACL
Quarto parâmetro representa a forma de propagação da permissão, podendo variar entre ;
None
NoPropagateInherit
InheritOnly
Quinto e ultimo parâmetro é o que define o tipo de permissão, podendo ser permissões de acesso ou permissões de bloqueio, as opções são:
Allow
Deny
Referencias
Os sites abaixo contém mais informações sobre o assunto e podem ter sido utilizados como fonte de consulta.
http://msdn.microsoft.com/pt-br/library/system.security.accesscontrol.filesystemaccessrule.aspx
http://blogs.technet.com/b/josebda/archive/2010/11/12/how-to-handle-ntfs-folder-permissions-security-descriptors-and-acls-in-powershell.aspx
Este artigo foi originalmente escrito por:
Matheus Kamphorst | Blog: http://howtoserver.com
HowToServer
,
Matheus Kamphorst
,
PowerShell