Comment obtenir une ACL pour un utilisateur spécifique dans PowerShell
-
Introduction à
Get-Acl
dans PowerShell - Récupérer l’ACL pour un Utilisateur Spécifique
-
Interpréter la Sortie de
Get-Acl
- Exemples Pratiques
-
Utiliser
Get-Acl
pour Vérifier les Permissions pour un Utilisateur Spécifique dans PowerShell - Conclusion

PowerShell, un puissant outil d’automatisation, fournit de nombreux cmdlets pour gérer divers aspects d’un environnement Windows.
Un des cmdlets fondamentaux est Get-Acl
, qui signifie Liste de Contrôle d’Accès. Il permet aux administrateurs de récupérer et d’inspecter le descripteur de sécurité (permissions) d’un fichier, d’un dossier ou d’une clé de registre.
Dans cet article, nous allons explorer les subtilités de l’utilisation de Get-Acl
spécifiquement pour un utilisateur particulier. Nous aborderons la syntaxe, les options et des exemples pratiques pour vous aider à gérer efficacement les droits d’accès dans votre environnement Windows.
Introduction à Get-Acl
dans PowerShell
Get-Acl
est un cmdlet PowerShell utilisé pour récupérer la liste de contrôle d’accès (ACL) pour un fichier, un répertoire ou une clé de registre. L’ACL contient une liste d’entrées de contrôle d’accès (ACE) qui définissent qui peut accéder à l’objet et quel est le niveau d’accès qu’ils ont.
Comprendre et gérer les permissions est essentiel pour maintenir un environnementinformatique sécurisé et organisé. Get-Acl
permet aux administrateurs d’inspecter et de modifier les permissions de manière programmatique.
Syntaxe de base :
Get-Acl [-Path] <String[]> [-Audit] [-AllCentralAccessPolicies] [-Directory] [-Filter <String>] [-Include <String[]>] [-LiteralPath <String[]>] [-Owner] [-Access <String>] [-UseTransaction] [<CommonParameters>]
Paramètres courants :
-Path |
Spécifie le chemin de l’élément pour lequel récupérer l’ACL. |
-Audit |
Récupère les règles d’audit. |
-Owner |
Récupère les informations sur le propriétaire. |
-Access |
Récupère uniquement les types spécifiques de règles d’accès. |
-UseTransaction |
Permet l’utilisation d’une transaction pour le cmdlet. |
-InputObject |
Vous fournit le Descripteur de Sécurité pour l’objet spécifique. |
-LiteralPath |
Utilisé pour spécifier le chemin d’une ressource ou d’un fichier. La valeur de ce paramètre doit être utilisée telle qu’elle est tapée. |
Options avancées :
-AllCentralAccessPolicies |
Récupère toutes les politiques d’accès central. |
-Directory |
Spécifie que l’élément est un répertoire. |
-Filter |
Filtre les résultats en fonction des critères spécifiés. |
-Include |
Récupère uniquement les éléments spécifiés. |
-Exclude |
Omets l’élément spécifique. Vous devez fournir le chemin ici. |
Récupérer l’ACL pour un Utilisateur Spécifique
Utilisation du Paramètre Path
La manière la plus simple de récupérer l’ACL pour un utilisateur spécifique est d’utiliser le paramètre Path
avec le chemin de l’élément (fichier, répertoire ou clé de registre).
Get-Acl -Path 'C:\Example\File.txt'
Spécifier l’Utilisateur Avec Where-Object
Pour filtrer les résultats pour un utilisateur spécifique, vous pouvez utiliser le cmdlet Where-Object
en conjonction avec Get-Acl
. Cela vous permet de sélectionner uniquement les ACE pertinents pour l’utilisateur souhaité.
Get-Acl -Path 'C:\Example\File.txt' | Where-Object { $_.Access | Where-Object { $_.IdentityReference -eq 'DOMAIN\User' } }
Le code recherche des règles d’accès spécifiques dans l’ACL du fichier C:\Example\File.txt
qui concernent l’utilisateur ayant l’identité 'DOMAIN\User'
. S’il y a des règles correspondantes, elles seront affichées dans la sortie. Sinon, la sortie sera vide.
Interpréter la Sortie de Get-Acl
Règles d’Accès
La sortie de Get-Acl
contiendra des informations sur les règles d’accès. Chaque règle spécifie un utilisateur ou un groupe, un type d’accès (par exemple, Lecture, Écriture), et si la règle permet ou refuse cet accès.
Règles d’Audit
Si le paramètre -Audit
est utilisé, les règles d’audit seront également incluses. Ces règles précisent quels types d’accès doivent être audités pour un utilisateur ou un groupe particulier.
Propriétaire et Groupe
Get-Acl
peut également récupérer des informations sur le propriétaire de l’élément et le groupe qui y est associé.
Exemples Pratiques
Exemple 1 : Récupérer l’ACL d’un Fichier
La commande ci-dessous récupère la Liste de Contrôle d’Accès (ACL) pour le fichier situé à C:\Example\File.txt
. Cette commande retournera des informations sur les permissions et les règles d’accès associées à ce fichier spécifique.
Get-Acl -Path 'C:\Example\File.txt'
Exemple 2 : Obtenir l’ACL d’un Répertoire
La commande ci-dessous fonctionne de la même manière que la commande précédente mais récupère l’ACL d’un répertoire différent.
Get-Acl -Path 'C:\Example\Directory'
Exemple 3 : Vérifier les Permissions d’une Clé de Registre
La commande ci-dessous récupère la Liste de Contrôle d’Accès (ACL) pour la clé de registre située à HKLM:\SOFTWARE\ExampleKey
. Cette commande retournera des informations sur les permissions et les règles d’accès associées à cette clé de registre spécifique.
Get-Acl -Path 'HKLM:\SOFTWARE\ExampleKey'
Exemple 4 : Filtrer par Type d’Accès :
Vous pouvez utiliser le paramètre -Access
pour récupérer uniquement des types spécifiques de règles d’accès (par exemple, Lecture, Écriture).
Get-Acl -Path 'C:\Example\File.txt' -Access Read, Write
Exemple 5 : Formatage de la Sortie :
Vous pouvez formater la sortie à l’aide de cmdlets comme Format-Table
ou Format-List
pour une meilleure lisibilité.
Get-Acl -Path 'C:\Example\File.txt' | Format-Table -Property Path, AccessToString
Utiliser Get-Acl
pour Vérifier les Permissions pour un Utilisateur Spécifique dans PowerShell
Parfois, nous devons vérifier les permissions pour un utilisateur spécifique. Nous avons besoin de cela pour diverses raisons, comme contrôler l’accès à un fichier particulier. Avec l’aide de PowerShell, nous pouvons facilement voir les permissions pour accéder au fichier.
Voici un script PowerShell à travers lequel nous allons vérifier l’état des permissions pour les Administrateurs Système.
Get-Acl g:\ | Select-Object -ExpandProperty Access | Where-Object identityreference -EQ "BUILTIN\Administrators"
Ce code récupère les informations de contrôle d’accès pour le répertoire situé à g:\
puis filtre ces informations pour n’afficher que les règles d’accès pour le groupe "Administrators"
. Cela peut être utile pour l’audit ou la gestion des permissions pour un répertoire spécifique.
La sortie du code ci-dessus sera une liste de règles d’accès spécifiquement attribuées au groupe "Administrators"
pour le répertoire situé à g:\
. La sortie inclura des détails sur les permissions accordées, l’identité à laquelle les permissions s’appliquent et d’autres informations connexes.
FileSystemRights : 268435456
AccessControlType : Allow
IdentityReference : BUILTIN\Administrators
IsInherited : False
InheritanceFlags : ContainerInherit, ObjectInherit
PropagationFlags : InheritOnly
FileSystemRights : FullControl
AccessControlType : Allow
IdentityReference : BUILTIN\Administrators
IsInherited : False
InheritanceFlags : None
PropagationFlags : None
Conclusion
Get-Acl
est un cmdlet puissant qui joue un rôle crucial dans la gestion des permissions au sein d’un environnement Windows. En comprenant sa syntaxe et en utilisant ses divers paramètres, les administrateurs peuvent récupérer et analyser efficacement les informations de contrôle d’accès.
Cette connaissance est inestimable pour maintenir un environnement informatique sécurisé et organisé.
N’oubliez pas de faire preuve de prudence lorsque vous apportez des modifications aux permissions et d’avoir toujours des sauvegardes appropriées avant de modifier les ACL. Avec Get-Acl
comme partie de votre boîte à outils PowerShell, vous disposerez d’un outil précieux pour maintenir un environnement Windows sécurisé et bien géré.
Aminul Is an Expert Technical Writer and Full-Stack Developer. He has hands-on working experience on numerous Developer Platforms and SAAS startups. He is highly skilled in numerous Programming languages and Frameworks. He can write professional technical articles like Reviews, Programming, Documentation, SOP, User manual, Whitepaper, etc.
LinkedIn