Come gestire le autorizzazioni NTFS utilizzando PowerShell

  1. Visualizzare i permessi NTFS con Get-ACL in PowerShell
  2. Visualizzare i permessi NTFS in PowerShell
  3. Ottenere ACL sui file ricorsivamente in PowerShell
Come gestire le autorizzazioni NTFS utilizzando 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.

ACL utilizzando le Impostazioni di Sicurezza Avanzate

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.

Ti piacciono i nostri tutorial? Iscriviti a DelftStack su YouTube per aiutarci a creare altre guide video di alta qualità. Iscriviti
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn