Comment obtenir une ACL pour un utilisateur spécifique dans PowerShell

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

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é.

Vous aimez nos tutoriels ? Abonnez-vous à DelftStack sur YouTube pour nous aider à créer davantage de tutoriels vidéo de haute qualité. Abonnez-vous
MD Aminul Islam avatar MD Aminul Islam avatar

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

Article connexe - PowerShell Script