Come gestire le autorizzazioni NTFS utilizzando PowerShell
-
Visualizzare i permessi NTFS con
Get-ACL
in PowerShell - Visualizzare i permessi NTFS in PowerShell
- Ottenere ACL sui file ricorsivamente in PowerShell

Gestire i permessi NTFS con un’interfaccia grafica richiede tempo, specialmente quando si lavora con molti utenti o gruppi. Tuttavia, specifici cmdlet di PowerShell possono recuperare e assegnare permessi NTFS.
Questo articolo discuterà la gestione dei permessi NTFS con il comando Get-ACL
.
Visualizzare i permessi NTFS con Get-ACL
in PowerShell
Un elenco di controllo accessi (o ACL) è un elenco di voci di controllo accessi (ACE) in cui ciascun elenco contiene un ACE che identifica un fiduciario e specifica i diritti di accesso.
Il descrittore di sicurezza di un oggetto securabile può essere di due tipi: DACL o SACL. Un DACL identifica gli utenti e i gruppi a cui è consentito o negato l’accesso, mentre un SACL controlla l’accesso.
PowerShell ci consente di visualizzare rapidamente i permessi NTFS utilizzando il cmdlet Get-ACL
. Impareremo a utilizzare il cmdlet per visualizzare i permessi NTFS per un file o una cartella nelle sezioni seguenti.
Visualizzare i permessi NTFS in PowerShell
Tradizionalmente, visualizzeremmo un ACL facendo clic destro su una cartella, cliccando su Proprietà
, selezionando la scheda Sicurezza
e cliccando sul pulsante Avanzate
. Possiamo vedere un esempio di come l’interfaccia grafica visualizza i permessi qui sotto.
I seguenti esempi in questo articolo assegnano un percorso alla variabile $dir
.
Codice Esempio:
$dir = "C:\Windows\Temp"
Get-Acl -Path $dir
Output:
Path Owner Access
---- ----- ------
Temp DESKTOP-7GI1260\KentMarion BUILTIN\Administrators Allow FullControl...
Tuttavia, eseguire il comando Get-Acl
con il parametro -Path
visualizzerà e restituirà solo l’elenco dei controlli di accesso a livello di cartella. Cosa succede se vogliamo controllare l’elenco dei controlli di accesso a livello di file?
Ottenere ACL sui file ricorsivamente in PowerShell
Una delle funzioni vantaggiose di PowerShell è l’uso della Pipeline. Le pipeline di PowerShell combinano una serie di comandi utilizzando un operatore di pipeline (|
).
Possiamo utilizzare il metodo della pipeline per ottenere l’elenco dei controlli di accesso a livello di file.
Dobbiamo utilizzare il comando Get-ChildItem
per raggiungere questo scenario. Il comando Get-ChildItem
recupera tutti i file e le cartelle all’interno di una directory.
Utilizziamo la nostra precedente variabile $dir
come esempio.
Codice Esempio:
$dir = "C:\Windows\Temp"
Get-ChildItem $dir -Recurse | Get-Acl | Format-List | Out-File "C:\PS\output.txt"
Nell’esempio sopra, il parametro switch -Recurse
è importante per scorrere tutti i file e eseguire il comando Get-Acl
. Con il frammento sopra, saremo in grado di ottenere tutti i permessi dell’elenco di controllo accessi di tutti i file nella cartella Temp
.
Si consiglia inoltre di utilizzare il comando Out-File
per esportare tutti i dettagli in un unico file di testo, specialmente se avete molti file nella cartella mirata.
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn