Comment gérer les autorisations NTFS à l'aide de PowerShell
-
Afficher les autorisations NTFS avec
Get-ACL
dans PowerShell - Afficher les autorisations NTFS dans PowerShell
- Obtenir l’ACL sur les fichiers de manière récursive dans PowerShell

La gestion des autorisations NTFS avec une interface graphique est chronophage, surtout lorsque l’on travaille avec de nombreux utilisateurs ou groupes. Cependant, des cmdlets PowerShell spécifiques peuvent récupérer et attribuer des autorisations NTFS.
Cet article traitera de la gestion des autorisations NTFS avec la commande Get-ACL
.
Afficher les autorisations NTFS avec Get-ACL
dans PowerShell
Une liste de contrôle d’accès (ou ACL) est une liste d’entrées de contrôle d’accès (ACE) dans laquelle chaque liste contient une ACE qui identifie un fiduciaire et spécifie les droits d’accès.
Le descripteur de sécurité d’un objet sécurisable peut être de deux types : DACL ou SACL. Un DACL identifie les utilisateurs et les groupes autorisés ou refusés d’accès, tandis qu’un SACL contrôle l’accès.
PowerShell nous permet de visualiser rapidement les autorisations NTFS en utilisant la cmdlet Get-ACL
. Nous apprendrons à utiliser la cmdlet pour voir les autorisations NTFS pour un fichier ou un dossier dans les sections suivantes.
Afficher les autorisations NTFS dans PowerShell
Traditionnellement, nous aurions vu un ACL en cliquant avec le bouton droit sur un dossier, en cliquant sur Propriétés
, en sélectionnant l’onglet Sécurité
et en cliquant sur le bouton Avancé
. Nous pouvons voir un exemple de la manière dont l’interface graphique affiche les autorisations ci-dessous.
Les exemples suivants dans cet article assignent un chemin à la variable $dir
.
Exemple de code :
$dir = "C:\Windows\Temp"
Get-Acl -Path $dir
Sortie :
Path Owner Access
---- ----- ------
Temp DESKTOP-7GI1260\KentMarion BUILTIN\Administrators Allow FullControl...
Cependant, l’exécution de la commande Get-Acl
avec le paramètre -Path
n’affichera et ne sortira que la liste de contrôle d’accès au niveau du dossier. Que se passerait-il si nous voulions vérifier la liste de contrôle d’accès au niveau du fichier ?
Obtenir l’ACL sur les fichiers de manière récursive dans PowerShell
Une des fonctions avantageuses de PowerShell est l’utilisation de la pipeline. Les pipelines PowerShell combinent une série de plusieurs commandes à l’aide d’un opérateur de pipeline (|
).
Nous pouvons utiliser la méthode de pipeline pour obtenir la liste de contrôle d’accès au niveau du fichier.
Nous devons utiliser la commande Get-ChildItem
pour réaliser ce scénario. La commande Get-ChildItem
récupère tous les fichiers et dossiers à l’intérieur d’un répertoire.
Utilisons notre variable $dir
précédente comme exemple.
Exemple de code :
$dir = "C:\Windows\Temp"
Get-ChildItem $dir -Recurse | Get-Acl | Format-List | Out-File "C:\PS\output.txt"
Dans l’exemple ci-dessus, le paramètre d’option -Recurse
est important pour parcourir tous les fichiers et exécuter la commande Get-Acl
. En exécutant le code ci-dessus, nous serons en mesure d’obtenir toutes les autorisations de la liste de contrôle d’accès de tous les fichiers dans le dossier Temp
.
Il est également recommandé d’utiliser la commande Out-File
pour exporter tous les détails sous un seul fichier texte, surtout si vous avez de nombreux fichiers dans votre dossier ciblé.
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn