Set-Acl
Modifie le descripteur de sécurité d’un élément spécifié, tel qu’un fichier ou une clé de Registre.
Syntaxe
Set-Acl
[-Path] <String[]>
[-AclObject] <Object>
[[-CentralAccessPolicy] <String>]
[-ClearCentralAccessPolicy]
[-Passthru]
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-WhatIf]
[-Confirm]
[-UseTransaction]
[<CommonParameters>]
Set-Acl
[-InputObject] <PSObject>
[-AclObject] <Object>
[-Passthru]
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-WhatIf]
[-Confirm]
[-UseTransaction]
[<CommonParameters>]
Set-Acl
-LiteralPath <String[]>
[-AclObject] <Object>
[[-CentralAccessPolicy] <String>]
[-ClearCentralAccessPolicy]
[-Passthru]
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-WhatIf]
[-Confirm]
[-UseTransaction]
[<CommonParameters>]
Description
L’applet de commande Set-Acl
modifie le descripteur de sécurité d’un élément spécifié, tel qu’un fichier ou une clé de Registre, pour qu’il corresponde aux valeurs d’un descripteur de sécurité que vous fournissez.
Pour utiliser Set-Acl
applique le descripteur de sécurité fourni.
Il utilise la valeur du paramètre AclObject en tant que modèle et modifie les valeurs du descripteur de sécurité de l’élément pour qu’elles correspondent aux valeurs du paramètre AclObject.
Exemples
Exemple 1 : Copier un descripteur de sécurité d’un fichier vers un autre
$DogACL = Get-Acl -Path "C:\Dog.txt"
Set-Acl -Path "C:\Cat.txt" -AclObject $DogACL
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 terminé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’affectation (=) stocke le descripteur de sécurité dans la valeur de la variable $DogACL.
La deuxième commande utilise Set-Acl
pour modifier les valeurs de la liste de contrôle d’accès de Cat.txt aux valeurs de $DogACL.
La valeur du paramètre Path
Exemple 2 : Utiliser l’opérateur de pipeline pour passer un descripteur
Get-Acl -Path "C:\Dog.txt" | Set-Acl -Path "C:\Cat.txt"
Cette commande est presque identique à la commande de l’exemple précédent, sauf qu’elle utilise un opérateur de pipeline pour envoyer le descripteur de sécurité d’un Get-Aclcommand à une commande Set-Acl
.
La première commande utilise l’applet de commande Get-Acl 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 terminée, les listes de contrôle d’accès des fichiers Dog.txt et Cat.txt sont identiques.
Exemple 3 : Appliquer un descripteur de sécurité à plusieurs fichiers
$NewAcl = Get-Acl File0.txt
Get-ChildItem -Path "C:\temp" -Recurse -Include "*.txt" -Force | Set-Acl -AclObject $NewAcl
Ces commandes appliquent les descripteurs de sécurité dans le fichier File0.txt à tous les fichiers texte du répertoire C :\Temp et à tous ses sous-répertoires.
La première commande obtient le descripteur de sécurité du fichier File0.txt dans le répertoire actif et utilise l’opérateur d’affectation (=) 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 Include limite les fichiers récupérés à ceux avec l’extension de nom de fichier «.txt». Le paramètre Forcer obtient des fichiers masqués, qui seraient autrement exclus. (Vous ne pouvez pas utiliser « c :\temp*.txt», car le paramètre Recurse fonctionne sur les répertoires, et non sur les fichiers.)
L’opérateur de pipeline (|) envoie les objets représentant les fichiers récupérés à l’applet de commande Set-Acl
, qui applique le descripteur de sécurité dans le paramètre AclObject à tous les fichiers du pipeline.
Dans la pratique, il est préférable d’utiliser le paramètre WhatIf avec toutes les commandes Set-Acl
qui peuvent affecter plusieurs éléments.
Dans ce cas, la deuxième commande du pipeline serait «Set-Acl -AclObject $NewAcl -WhatIf
».
Cette commande répertorie les fichiers qui seraient affectés par la commande.
Après avoir examiné le résultat, vous pouvez réexécuter la commande sans le paramètre WhatIf.
Paramètres
-AclObject
Spécifie une liste de contrôle d’accès avec les valeurs de propriété souhaitées.
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.
Type: | Object |
Position: | 1 |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-CentralAccessPolicy
Établit ou modifie la stratégie d’accès central de l’élément. Entrez l’ID CAP ou le nom convivial d’une stratégie d’accès central sur l’ordinateur.
À compter de Windows Server 2012, les administrateurs peuvent utiliser Active Directory et la stratégie de groupe pour définir des stratégies d’accès centralisées pour les utilisateurs et les groupes. Pour plus d’informations, consultez Contrôle d’accès dynamique : Vue d’ensemble du scénario.
Ce paramètre a été introduit dans Windows PowerShell 3.0.
Type: | String |
Position: | 2 |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-ClearCentralAccessPolicy
Supprime la stratégie d’accès central de l’élément spécifié.
À compter de Windows Server 2012, les administrateurs peuvent utiliser Active Directory et la stratégie de groupe pour définir des stratégies d’accès centralisées pour les utilisateurs et les groupes. Pour plus d’informations, consultez Contrôle d’accès dynamique : Vue d’ensemble du scénario.
Ce paramètre a été introduit dans Windows PowerShell 3.0.
Type: | SwitchParameter |
Position: | Named |
Valeur par défaut: | False |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Confirm
Vous invite à confirmer avant d’exécuter l’applet de commande.
Type: | SwitchParameter |
Alias: | cf |
Position: | Named |
Valeur par défaut: | False |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Exclude
Omettez les éléments spécifiés. La valeur de ce paramètre qualifie le paramètre Path. Entrez un élément de chemin d’accès ou un modèle, tel que « *.txt». Les caractères génériques sont autorisés.
Type: | String[] |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | True |
-Filter
Spécifie un filtre dans le format ou la langue du fournisseur. La valeur de ce paramètre qualifie le paramètre Path. La syntaxe du filtre, y compris l’utilisation de caractères génériques, dépend du fournisseur. Les filtres sont plus efficaces que d’autres paramètres, car le fournisseur les applique lors de la récupération des objets, plutôt que de filtrer les objets après leur récupération.
Type: | String |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | True |
-Include
Modifie uniquement les éléments spécifiés. La valeur de ce paramètre qualifie le paramètre Path. Entrez un élément de chemin d’accès ou un modèle, tel que « *.txt». Les caractères génériques sont autorisés.
Type: | String[] |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | True |
-InputObject
Modifie le descripteur de sécurité de l’objet spécifié. Entrez une variable qui contient l’objet ou une commande qui obtient l’objet.
Vous ne pouvez pas diriger l’objet vers set-Acl. Utilisez plutôt le paramètre InputObject explicitement dans la commande.
Ce paramètre a été introduit dans Windows PowerShell 3.0.
Type: | PSObject |
Position: | 0 |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-LiteralPath
Modifie le descripteur de sécurité de l’élément spécifié. Contrairement à Path, la valeur du paramètre LiteralPath est utilisée exactement comme il est typé. Aucun caractère n’est interprété comme des caractères génériques. Si le chemin inclut des caractères d’échappement, placez-le entre guillemets simples. Les guillemets simples indiquent à PowerShell de ne pas interpréter de caractères comme séquences d’échappement.
Ce paramètre a été introduit dans Windows PowerShell 3.0.
Type: | String[] |
Alias: | PSPath |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-Passthru
Retourne un objet qui représente le descripteur de sécurité qui a été modifié. Par défaut, cette applet de commande ne génère aucune sortie.
Type: | SwitchParameter |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Path
Modifie le descripteur de sécurité de l’élément spécifié. Entrez le chemin d’accès à un élément, tel qu’un 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é à
Type: | String[] |
Position: | 0 |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | True |
-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.
Type: | SwitchParameter |
Alias: | usetx |
Position: | Named |
Valeur par défaut: | False |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-WhatIf
Affiche ce qui se passerait si l’applet de commande s’exécute. L’applet de commande n’est pas exécutée.
Type: | SwitchParameter |
Alias: | wi |
Position: | Named |
Valeur par défaut: | False |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
Entrées
System.Security.AccessControl.ObjectSecurity, System.Security.AccessControl.CommonSecurityDescriptor
Vous pouvez diriger un objet ACL ou un descripteur de sécurité vers Set-Acl
.
Sorties
Par défaut, Set-Acl
ne génère aucune sortie.
Toutefois, si vous utilisez le paramètre passthru
Notes
L’applet de commande Set-Acl
est prise en charge par le système de fichiers PowerShell et les fournisseurs de Registre. Par conséquent, vous pouvez l’utiliser pour modifier les descripteurs de sécurité des fichiers, des répertoires et des clés de Registre.