Modifie le descripteur de sécurité de la ressource spécifiée, telle qu'un fichier ou une clé de Registre.

Syntaxe

Set-Acl [-Path] <string[]> [-AclObject] <ObjectSecurity> [-Exclude <string[]>] [-Filter <string>] [-Include <string[]>] [-PassThru] [-Confirmer] [-WhatIf] [-UseTransaction] [<CommonParameters>]

Description

L'applet de commande Set-Acl modifie le descripteur de sécurité d'une ressource spécifiée, telle qu'un fichier ou une clé de Registre, pour le faire correspondre aux valeurs d'un descripteur de sécurité que vous fournissez.

Pour utiliser Set-Acl, utilisez le paramètre Path pour identifier la ressource dont vous souhaitez modifier le descripteur de sécurité, puis utilisez le paramètre AclObject pour fournir un descripteur de sécurité qui possède les valeurs que vous souhaitez appliquer. Set-Acl utilise la valeur du paramètre AclObject comme modèle et modifie les valeurs du descripteur de sécurité de la ressource de façon à correspondre aux valeurs du paramètre AclObject.

Paramètres

-AclObject <ObjectSecurity>

Spécifie une ACL ayant les valeurs de propriété souhaitées. Set-Acl modifie l'ACL de la ressource spécifiée par le paramètre Path pour correspondre aux valeurs de l'objet de sécurité spécifié.

Vous pouvez enregistrer la sortie d'une commande Get-Acl dans une variable, puis utiliser le paramètre AclObject pour passer la variable, ou taper une commande Get-Acl.

Obligatoire ?

true

Position ?

2

Valeur par défaut

Accepter l'entrée de pipeline ?

true (ByValue)

Accepter les caractères génériques ?

false

-Exclude <string[]>

Omet les éléments spécifiés. La valeur de ce paramètre qualifie le paramètre Path. Entrez un élément ou un modèle de chemin d'accès, tel que « *.txt ». Les caractères génériques sont autorisés.

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

-Filter <string>

Spécifie un filtre dans le format ou le langage du fournisseur. La valeur de ce paramètre qualifie le paramètre Path. La syntaxe du filtre, notamment l'utilisation de caractères génériques, dépend du fournisseur. Les filtres sont plus efficaces que les autres paramètres, car le fournisseur les applique lors de la récupération des objets, plutôt que de laisser le soin à Windows PowerShell de filtrer les objets une fois qu'ils ont été récupérés.

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

-Include <string[]>

Modifie uniquement les éléments spécifiés. La valeur de ce paramètre qualifie le paramètre Path. Entrez un élément ou un modèle de chemin d'accès, tel que « *.txt ». Les caractères génériques sont autorisés.

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

-PassThru

Retourne un objet représentant le descripteur de sécurité. Par défaut, cette applet de commande ne génère aucune sortie.

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

-Path <string[]>

Identifie la ressource dont vous souhaitez modifier le descripteur de sécurité. Entrez le chemin d'accès à une ressource, tel que le chemin d'accès à un fichier ou à une clé de Registre. Les caractères génériques sont autorisés.

Si vous passez un objet de sécurité à Set-Acl (au moyen du paramètre AclObject ou en passant un objet de Get-Acl à Set-Acl) et que vous omettez le paramètre Path (nom et valeur), Set-Acl utilise le chemin d'accès inclus dans l'objet de sécurité.

Obligatoire ?

true

Position ?

1

Valeur par défaut

Accepter l'entrée de pipeline ?

true (ByPropertyName)

Accepter les caractères génériques ?

false

-Confirmer

Vous invite à confirmer l'exécution de la commande.

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

-WhatIf

Décrit le résultat que vous obtiendriez en exécutant la commande, sans réellement l'exécuter.

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

-UseTransaction

Inclut la commande dans la transaction active. Ce paramètre est valide uniquement lorsqu'une transaction est en cours. Pour plus d'informations, consultez about_Transactions.

Obligatoire ?

false

Position ?

named

Valeur par défaut

Accepter l'entrée de pipeline ?

false

Accepter les caractères génériques ?

false

<CommonParameters>

Cette applet de commande prend en charge les paramètres courants : -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer et -OutVariable. Pour plus d'informations, consultez about_Commonparameters.

Entrées et sorties

Le type d'entrée est le type des objets que vous pouvez diriger vers l'applet de commande. Le type de retour est le type des objets que l'applet de commande retourne.

Entrées

System.Security.AccessControl.ObjectSecurity

Vous pouvez diriger un descripteur de sécurité vers Set-Acl.

Sorties

Aucun ou un objet de sécurité

Par défaut, Set-Acl ne génère aucune sortie. Toutefois, si vous utilisez le paramètre -Passthru, elle génère un objet de sécurité. Le type de l'objet de sécurité dépend du type de la ressource.

Remarques

L'applet de commande Set-Acl est prise en charge par les fournisseurs de système de fichiers et de Registre de Windows PowerShell. En tant que telle, vous pouvez l'utiliser pour modifier les descripteurs de sécurité de fichiers, répertoires et clés de Registre.

Lors de la spécification de plusieurs valeurs pour un même paramètre, utilisez des virgules pour séparer les valeurs. Par exemple, « &lt;nom_paramètre&gt; &lt;valeur1&gt;, &lt;valeur2&gt; ».

Exemple 1

C:\PS>$DogACL = get-acl c:\dog.txt

C:\PS>set-acl -path C:\cat.txt -AclObject $DogACL

Description
-----------
Ces commandes copient les valeurs du descripteur de sécurité du fichier Dog.txt vers le descripteur de sécurité du fichier Cat.txt. Une fois les commandes exécutées, les descripteurs de sécurité des fichiers Dog.txt et Cat.txt sont identiques.

La première commande utilise l'applet de commande Get-Acl pour obtenir le descripteur de sécurité du fichier Dog.txt. L'opérateur d'assignation (=) stocke le descripteur de sécurité dans la valeur de la variable $DogACL. 

La deuxième commande utilise Set-Acl pour remplacer les valeurs de la liste de contrôle d'accès (ACL) de Cat.txt par celles de $DogACL.

La valeur du paramètre Path est le chemin d'accès au fichier Cat.txt. La valeur du paramètre AclObject est l'ACL modèle, en l'occurrence, l'ACL de Dog.txt, telle qu'enregistrée dans la variable $DogACL.






Exemple 2

C:\PS>get-acl c:\dog.txt | set-acl -path C:\cat.txt

Description
-----------
Cette commande ressemble pour l'essentiel à celle de l'exemple précédent, à cette différence qu'elle utilise un opérateur de pipeline pour envoyer le descripteur de sécurité récupéré dans une commande Get-Acl à une commande Set-Acl.

La première commande utilise l'applet de commande Get-Acl pour obtenir le descripteur de sécurité du fichier Dog.txt. L'opérateur de pipeline (|) passe un objet représentant le descripteur de sécurité Dog.txt à la commande Set-Acl.

La deuxième commande utilise Set-Acl pour appliquer le descripteur de sécurité de Dog.txt à Cat.txt. Une fois la commande exécutée, les ACL des fichiers Dog.txt et Cat.txt sont identiques.






Exemple 3

C:\PS>$newACL = get-acl file0.txt

C:\PS>get-childitem c:\temp -recurse -include *.txt -force | set-acl -aclobject $newacl

Description
-----------
Ces commandes appliquent les descripteurs de sécurité du fichier File0.txt à tous les fichiers texte du répertoire C:\Temp et de tous ses sous-répertoires.

La première commande obtient le descripteur de sécurité du fichier File0.txt du répertoire actif et utilise l'opérateur d'assignation (=) pour le stocker dans la variable $newACL.

La première commande du pipeline utilise l'applet de commande Get-ChildItem pour obtenir tous les fichiers texte du répertoire C:\Temp. Le paramètre Recurse étend la commande à tous les sous-répertoires de C:\temp. Le paramètre Include limite les fichiers récupérés à ceux dont l'extension de nom de fichier est « .txt ». Le paramètre Force obtient les fichiers cachés, qui, autrement, seraient exclus. (Vous ne pouvez pas utiliser « c:\temp\*.txt », car le paramètre Recurse fonctionne sur des répertoires et non sur des fichiers.)

L'opérateur de pipeline (|) envoie les objets représentant les fichiers récupérés à la commande Set-Acl, qui applique le descripteur de sécurité du paramètre AclObject à tous les fichiers du pipeline.

En pratique, il est préférable d'utiliser le paramètre Whatif avec toutes les commandes Set-Acl susceptibles d'affecter plusieurs ressources. Dans ce cas, la deuxième commande du pipeline serait « set-acl -aclobject $newacl -whatif ». Cette commande répertorie les fichiers susceptibles d'être affectés par la commande. Après avoir examiné le résultat, vous pouvez de nouveau exécuter la commande sans le paramètre Whatif.






Voir aussi




Table des matières