Come ottenere l'ACL per un utente specifico in PowerShell
-
Introduzione a
Get-Acl
in PowerShell - Recuperare l’ACL per un Utente Specifico
-
Interpretare l’Output di
Get-Acl
- Esempi Pratici
-
Usare
Get-Acl
per Controllare i Permessi per un Utente Specifico in PowerShell - Conclusione

PowerShell, uno strumento di automazione potente, fornisce numerosi cmdlet per gestire vari aspetti di un ambiente Windows.
Uno dei cmdlet fondamentali è Get-Acl
, che sta per Access Control List. Permette agli amministratori di recuperare e ispezionare il descrittore di sicurezza (permessi) di un file, una cartella o una chiave di registro.
In questo articolo, approfondiremo le complessità dell’uso di Get-Acl
specificamente per un particolare utente. Copriremo la sintassi, le opzioni e esempi pratici per aiutarti a gestire efficacemente i diritti di accesso nel tuo ambiente Windows.
Introduzione a Get-Acl
in PowerShell
Get-Acl
è un cmdlet di PowerShell utilizzato per recuperare l’elenco di controllo degli accessi (ACL) per un file, una directory o una chiave di registro. L’ACL contiene un elenco di voci di controllo degli accessi (ACE) che definiscono chi può accedere all’oggetto e quale livello di accesso hanno.
Comprendere e gestire i permessi è fondamentale per mantenere un ambiente informatico sicuro e organizzato. Get-Acl
dà potere agli amministratori fornendo un mezzo per ispezionare e modificare i permessi in modo programmatico.
Sintassi di Base:
Get-Acl [-Path] <String[]> [-Audit] [-AllCentralAccessPolicies] [-Directory] [-Filter <String>] [-Include <String[]>] [-LiteralPath <String[]>] [-Owner] [-Access <String>] [-UseTransaction] [<CommonParameters>]
Parametri Comuni:
-Path |
Specifica il percorso dell’elemento per il quale recuperare l’ACL. |
-Audit |
Ripristina le regole di audit. |
-Owner |
Ripristina le informazioni sul proprietario. |
-Access |
Ripristina solo tipi specifici di regole di accesso. |
-UseTransaction |
Permette l’uso di una transazione per il cmdlet. |
-InputObject |
Fornisce il Descrittore di Sicurezza per un oggetto specifico. |
-LiteralPath |
Utilizzato per specificare il percorso di una risorsa o file. Il valore per questo parametro deve essere utilizzato così com’è digitato. |
Opzioni Avanzate:
-AllCentralAccessPolicies |
Ripristina tutte le politiche di accesso centrale. |
-Directory |
Specifica che l’elemento è una directory. |
-Filter |
Filtra i risultati in base ai criteri specificati. |
-Include |
Ripristina solo gli elementi specificati. |
-Exclude |
Esclude l’elemento specifico. Devi fornire il percorso qui. |
Recuperare l’ACL per un Utente Specifico
Utilizzando il parametro Path
Il modo più semplice per recuperare l’ACL per un utente specifico è utilizzare il parametro Path
insieme al percorso dell’elemento (file, directory o chiave di registro).
Get-Acl -Path 'C:\Example\File.txt'
Specificare l’Utente con Where-Object
Per filtrare i risultati per un utente specifico, puoi utilizzare il cmdlet Where-Object
in congiunzione con Get-Acl
. Questo ti permette di selezionare solo le ACE rilevanti per l’utente desiderato.
Get-Acl -Path 'C:\Example\File.txt' | Where-Object { $_.Access | Where-Object { $_.IdentityReference -eq 'DOMAIN\User' } }
Il codice cerca regole di accesso specifiche all’interno dell’ACL del file C:\Example\File.txt
che riguardano l’utente con l’identità 'DOMAIN\User'
. Se ci sono regole corrispondenti, verranno visualizzate nell’output. Altrimenti, l’output sarà vuoto.
Interpretare l’Output di Get-Acl
Regole di Accesso
L’output di Get-Acl
conterrà informazioni sulle regole di accesso. Ogni regola specifica un utente o un gruppo, un tipo di accesso (ad es. Lettura, Scrittura) e se la regola consente o nega tale accesso.
Regole di Audit
Se viene utilizzato il parametro -Audit
, le regole di audit saranno incluse. Queste regole specificano quali tipi di accesso devono essere sottoposti a audit per un particolare utente o gruppo.
Proprietario e Gruppo
Get-Acl
può anche recuperare informazioni sul proprietario dell’elemento e sul gruppo associato.
Esempi Pratici
Esempio 1: Recuperare l’ACL per un File
Il comando seguente recupera l’elenco di controllo degli accessi (ACL) per il file situato in C:\Example\File.txt
. Questo comando restituirà informazioni sui permessi e sulle regole di accesso associate a quel file specifico.
Get-Acl -Path 'C:\Example\File.txt'
Esempio 2: Ottenere l’ACL per una Directory
Il comando seguente funziona allo stesso modo del comando precedente ma recupera l’ACL per una directory diversa.
Get-Acl -Path 'C:\Example\Directory'
Esempio 3: Controllare i Permessi della Chiave di Registro
Il comando seguente recupera l’elenco di controllo degli accessi (ACL) per la chiave di registro situata in HKLM:\SOFTWARE\ExampleKey
. Questo comando restituirà informazioni sui permessi e sulle regole di accesso associate a quella specifica chiave di registro.
Get-Acl -Path 'HKLM:\SOFTWARE\ExampleKey'
Esempio 4: Filtrare per Tipo di Accesso:
Puoi utilizzare il parametro -Access
per recuperare solo specifici tipi di regole di accesso (ad es. Lettura, Scrittura).
Get-Acl -Path 'C:\Example\File.txt' -Access Read, Write
Esempio 5: Formattazione dell’Output:
Puoi formattare l’output utilizzando cmdlet come Format-Table
o Format-List
per una migliore leggibilità.
Get-Acl -Path 'C:\Example\File.txt' | Format-Table -Property Path, AccessToString
Usare Get-Acl
per Controllare i Permessi per un Utente Specifico in PowerShell
A volte, dobbiamo controllare i permessi per un utente specifico. Abbiamo bisogno di questo per vari scopi, come controllare l’accesso a un file particolare. Con l’aiuto di PowerShell, possiamo facilmente vedere i permessi per accedere al file.
Di seguito è riportato uno script PowerShell attraverso il quale controlleremo lo stato dei permessi per gli Amministratori di Sistema.
Get-Acl g:\ | Select-Object -ExpandProperty Access | Where-Object identityreference -EQ "BUILTIN\Administrators"
Questo codice recupera le informazioni di controllo degli accessi per la directory situata in g:\
e quindi filtra tali informazioni per mostrare solo le regole di accesso per il gruppo "Administrators"
. Questo può essere utile per l’audit o la gestione dei permessi per una directory specifica.
L’output del codice sopra sarà un elenco di regole di accesso specificamente assegnate al gruppo "Administrators"
per la directory situata in g:\
. L’output includerà dettagli sui permessi concessi, l’identità a cui si applicano i permessi e altre informazioni correlate.
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
Conclusione
Get-Acl
è un cmdlet potente che gioca un ruolo cruciale nella gestione dei permessi all’interno di un ambiente Windows. Comprendendo la sua sintassi e utilizzando i suoi vari parametri, gli amministratori possono recuperare e analizzare in modo efficiente le informazioni sul controllo degli accessi.
Questa conoscenza è inestimabile per mantenere un ambiente informatico sicuro e organizzato.
Ricorda di esercitare cautela quando apporti modifiche ai permessi e di avere sempre backup adeguati prima di modificare le ACL. Con Get-Acl
come parte del tuo toolkit PowerShell, avrai uno strumento prezioso per mantenere un ambiente Windows sicuro e ben gestito.
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