Get-Acl
Ottiene il descrittore di sicurezza per una risorsa, ad esempio un file o una chiave del Registro di sistema.
Sintassi
Get-Acl [[-Path] <string[]>] [-Audit] [-Exclude <string[]>] [-Filter <string>] [-Include <string[]>] [-UseTransaction] [<CommonParameters>]
Descrizione
Il cmdlet Get-Acl ottiene oggetti che rappresentano il descrittore di sicurezza di un file o di una risorsa. Tale descrittore contiene gli elenchi di controllo di accesso (ACL, Access Control List) della risorsa. L'elenco di controllo di accesso specifica le autorizzazioni di cui devono disporre utenti e gruppi di utenti per accedere alla risorsa.
Parametri
-Audit
Ottiene i dati di controllo per il descrittore di sicurezza dall'elenco di controllo di accesso di sistema (SACL, System Access Control List).
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-Exclude <string[]>
Omette gli elementi specificati. Il valore di questo parametro qualifica il parametro Path. Immettere un criterio o un elemento del percorso, ad esempio "*.txt". È consentito l'utilizzo di caratteri jolly.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-Filter <string>
Specifica un filtro nel formato o nel linguaggio del provider. Il valore di questo parametro qualifica il parametro Path. La sintassi del filtro, incluso l'utilizzo dei caratteri jolly, dipende dal provider. I filtri sono più efficienti rispetto ad altri parametri, perché il provider li applica al momento del recupero degli oggetti, anziché utilizzare Windows PowerShell per filtrare gli oggetti dopo il recupero.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-Include <string[]>
Recupera unicamente gli elementi specificati. Il valore di questo parametro qualifica il parametro Path. Immettere un criterio o un elemento del percorso, ad esempio "*.txt". È consentito l'utilizzo di caratteri jolly.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-Path <string[]>
Specifica il percorso di una risorsa. Get-Acl ottiene il descrittore di sicurezza della risorsa indicata dal percorso. È consentito l'utilizzo di caratteri jolly. Se si omette il parametro Path, Get-Acl ottiene il descrittore di sicurezza della directory corrente.
Il nome del parametro ("Path") è facoltativo.
Obbligatorio? |
false |
Posizione? |
1 |
Valore predefinito |
|
Accettare input da pipeline? |
true (ByValue, ByPropertyName) |
Accettare caratteri jolly? |
false |
-UseTransaction
Include il comando nella transazione attiva. Questo parametro è valido solo quando è in corso una transazione. Per ulteriori informazioni, vedere about_Transactions.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
<CommonParameters>
Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.
Input e output
Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.
Input |
System.String È possibile reindirizzare una stringa che contiene un percorso a Get-Acl. |
Output |
System.Security.AccessControl Get-Acl restituisce un oggetto che rappresenta gli elenchi di controllo di accesso ottenuti. Il tipo di oggetto dipende dal tipo di elenco di controllo di accesso. |
Note
Per impostazione predefinita, Get-Acl visualizza il percorso della risorsa in Windows PowerShell (<provider>::<percorso-risorsa>), il proprietario della risorsa e un elenco di accesso, ovvero un elenco (matrice) delle voci di controllo di accesso presenti nell'elenco di controllo di accesso discrezionale (DACL, Discretionary Access Control List) per la risorsa. L'elenco DACL è controllato dal proprietario della risorsa.
Quando si formatta il risultato come elenco, ("get-acl | Format-List"), oltre al percorso, al proprietario e all'elenco di accesso, in Windows PowerShell vengono visualizzati i campi seguenti:
-- Group: gruppo di sicurezza del proprietario.
-- Audit: elenco (matrice) di voci dell'elenco di controllo di accesso di sistema (SACL, System Access Control List). L'elenco SACL specifica i tipi di tentativi di accesso per i quali in Windows vengono generati record di controllo.
-- Sddl: descrittore di sicurezza della risorsa visualizzata in una singola stringa di testo in formato SDDL (Security Descriptor Definition Language). Per recuperare questi dati, in Windows PowerShell viene utilizzato il metodo GetSddlForm dei descrittori di sicurezza.
Poiché il cmdlet Get-Acl è supportato dai provider FileSystem e Registry, è possibile utilizzare Get-Acl per visualizzare l'ACL degli oggetti del file system, ad esempio file e directory, e degli oggetti del Registro di sistema, ad esempio voci e chiavi.
Esempio 1
C:\PS>get-acl C:\windows
Descrizione
-----------
Tramite questo comando viene ottenuto il descrittore di sicurezza della directory C:Windows.
Esempio 2
C:\PS>get-acl C:\Windows\k*.log | format-list -property PSPath, Sddl
Descrizione
-----------
Questo comando ottiene il percorso di Windows PowerShell e i valori SDDL di tutti i file con estensione log presenti nella directory C:\Windows il cui nome inizia con la lettera "k".
Nel comando viene utilizzato Get-Acl per ottenere gli oggetti che rappresentano i descrittori di sicurezza di ogni file di registro. Viene utilizzato un operatore pipeline (|) per inviare i risultati al cmdlet Format-List. Viene utilizzato il parametro Property di Format-List per visualizzare solo le proprietà PsPath e SDDL di ogni oggetto descrittore di sicurezza.
In Windows PowerShell vengono utilizzati spesso gli elenchi in quanto nelle tabelle i valori lunghi vengono troncati.
I valori SDDL sono utili per gli amministratori di sistema in quanto sono costituiti da semplici stringhe di testo che contengono tutte le informazioni del descrittore di sicurezza e possono pertanto essere passati e archiviati in modo semplice, nonché analizzati quando necessario.
Esempio 3
C:\PS>get-ACL c:/windows/k*.log -Audit | foreach-object { $_.Audit.Count }
Descrizione
-----------
Con questo comando si ottengono i descrittori di sicurezza dei file con estensione log nella directory C:\Windows i cui nomi iniziano con "k." Viene utilizzato il parametro Audit per recuperare i record di controllo dall'elenco SACL nel descrittore di sicurezza. Viene quindi utilizzato il parametro For-EachObject per contare il numero di record di controllo associati a ogni file. Il risultato è un elenco di numeri che rappresentano il numero di record di controllo per ogni file di registro.
Esempio 4
C:\PS>get-acl -path hklm:\system\currentcontrolset\control | format-list
Descrizione
-----------
Con questo comando viene utilizzato il cmdlet Get-Acl per ottenere il descrittore di sicurezza della sottochiave Control (HKLM\SYSTEM\CurrentControlSet\Control) del Registro di sistema.
Il parametro Path specifica la sottochiave Control. L'operatore pipeline (|) passa il descrittore di sicurezza recuperato da Get-Acl al comando Format-List che formatta le proprietà del descrittore di sicurezza come elenco, affinché risultino di facile lettura.