Come ottenere l'ACL per un utente specifico in PowerShell

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

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.

Ti piacciono i nostri tutorial? Iscriviti a DelftStack su YouTube per aiutarci a creare altre guide video di alta qualità. Iscriviti
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

Articolo correlato - PowerShell Script