PowerShell Pour Définir Les Permissions De Dossiers

j'essaye d'utiliser les options "par défaut" dans l'application des permissions de dossiers; par cela, je veux dire que l'utilisation du "contrôle complet, écrire, lire, etc" dans les "propriétés" pour un dossier.

Le script suivant fonctionne pour ajouter l'utilisateur, mais il s'applique à "Autorisations Spéciales" - non pas celles avec les cases à cocher pour ceux visibles dans le menu propriétés du dossier:

$Acl = Get-Acl "R9N2WRNShare"

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

$Acl.SetAccessRule($Ar)
Set-Acl "R9N2WRNShare" $Acl

Qu'est-ce que je fais de mal s'il vous plaît?

20
demandé sur The Woo 2014-09-11 09:02:20

2 réponses

spécifier l'héritage dans le FileSystemAccessRule() le constructeur corrige ceci, comme démontré par le code modifié ci-dessous (notez les deux nouveaux paramètres du constructeur insérés entre "FullControl" et "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

Selon ce sujet

" lorsque vous créez un FileSystemAccessRule de la façon dont vous avez, le La propriété InheritanceFlags est fixée à None. Dans l'interface graphique, ce correspond à un As avec la case Appliquer à "ce dossier seulement"", et ce type d'entrée doit être vu à travers les avancées paramètre."

j'ai testé la modification et cela fonctionne, mais bien sûr le crédit est dû au fait que le MVP affiche la réponse dans ce sujet.

42
répondu PeterK 2015-04-13 12:44:43

un autre exemple utilisant PowerShell pour définir les permissions (Fichier / répertoire):

permissions Verfiy

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

appliquer des autorisations complètes pour tout le monde

$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"

J'espère que cela aidera

0
répondu Gamaliel 2018-04-10 07:00:19