'PowerShell' Para Definir As Permissões Das Pastas

estou a tentar usar as opções " predefinidas "na aplicação de permissões de pastas; por isso, quero dizer que usando o" controlo completo, Escrita, Leitura, etc " nas 'propriedades' de uma pasta.

o seguinte programa funciona para adicionar o utilizador, mas aplica "permissões especiais" - não as que têm as opções visíveis no menu Propriedades da pasta:

$Acl = Get-Acl "\\R9N2WRN\Share"

$Ar = New-Object System.Security.AccessControl.FileSystemAccessRule ("user","FullControl","Allow")

$Acl.SetAccessRule($Ar)
Set-Acl "\\R9N2WRN\Share" $Acl
O que estou a fazer de errado, por favor?

Author: The Woo, 2014-09-11

2 answers

Especificar a herança no FileSystemAccessRule() construtor corrige isto, como demonstrado pelo código modificado abaixo (repare nos dois novos parâmetros do construtor inseridos entre "FullControl" e "Allow").

$Acl = Get-Acl "\\R9N2WRN\Share"

$Ar = New-Object System.Security.AccessControl.FileSystemAccessRule("user", "FullControl", "ContainerInherit,ObjectInherit", "None", "Allow")

$Acl.SetAccessRule($Ar)
Set-Acl "\\R9N2WRN\Share" $Acl

De acordo com este tópico

" quando você cria um FileSystemAccessRule como você tem, o A propriedade inerentemente flags não é definida como nenhuma. Na GUI, este corresponde a um ás com a opção Aplicar à opção "Apenas esta pasta", e esse tipo de entrada tem de ser visto através do avançado definicao."

Eu testei a modificação e ela funciona, mas é claro que o crédito é devido ao MVP postar a resposta nesse tópico.

 42
Author: PeterK, 2015-04-13 12:44:43

Outro exemplo a usar o 'PowerShell' para definir as permissões (ficheiro / Directório):

Verfiy permissions

Get-Acl "C:\file.txt" | fl *

Aplica as permissões completas para todos

$acl = Get-Acl "C:\file.txt"
$args = "everyone","FullControl","Allow"
$accessRule = New-Object System.Security.AccessControl.FileSystemAccessRule $args
$acl.SetAccessRule($accessRule)
$acl | Set-Acl "C:\file.txt"
Espero que isto ajude.
 0
Author: Gamaliel, 2018-04-10 07:00:19