Permissões de usuário adicionadas com set-acl não são herdadas para arquivos e subpastas

3

Eu escrevi dois scripts do PowerShell. Uma pergunta ao usuário por um nome de pasta. Ele cria uma pasta com esse nome, dá ao usuário controle total, dá ao grupo de administradores controle total e retira os direitos herdados, deixando apenas o usuário e os administradores. O segundo script pede um nome de usuário e dá direitos de modificação a esse usuário na nova pasta.

Funciona conforme o esperado, exceto por uma coisa: quando eu crio um arquivo ou pasta na pasta recém-criada, ele não herda esses direitos. Eu olhei para a guia de segurança, cliquei em avançado e editei (nas contas) e encontrei duas coisas não como eu quero:

  • A configuração "apply to" é "somente esta pasta". Quando o defino manualmente para 'esta pasta, subpasta e arquivos', funciona como pretendido
  • O usuário criado com o segundo script tem o acima e a caixa de permissões 'excluir subpastas e arquivos' não está marcada.

Adicionar as contas gira em torno destas linhas:

$Acl = Get-Acl $Folderpath
$Ar = New-Object system.Security.AccessControl.FileSystemAccessRule($user_account,"FullControl","Allow")
$Acl.Setaccessrule($Ar)
Set-Acl $Folderpath $Acl

$Folderpath é uma variável definida anteriormente, apontando para a pasta. $user_account é uma variável definida anteriormente contendo o nome da conta do usuário.

Minha pergunta:

Existe uma maneira de ter essas contas adicionadas às permissões de pasta corretamente (os direitos serão herdados, o usuário tem direitos de exclusão) ou para corrigi-los posteriormente no script?

    
por Erwin Blonk 24.02.2012 / 15:06

1 resposta

4

Precisa de mais sinalizadores de herança; o construtor que você está usando para criar a ACE passando apenas três argumentos não especifica como a ACE deve herdar.

Tente isto:

$Ar = New-Object system.Security.AccessControl.FileSystemAccessRule($user_account, "FullControl", "ContainerInherit, ObjectInherit", "None", "Allow")
    
por 24.02.2012 / 20:46