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]
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[<CommonParameters>]
Get-Acl
-InputObject <PSObject>
[-Audit]
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[<CommonParameters>]
Get-Acl
[-LiteralPath <String[]>]
[-Audit]
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[<CommonParameters>]
Descrizione
Questo cmdlet è disponibile solo nella piattaforma Windows.
Il Get-Acl
cmdlet ottiene oggetti che rappresentano il descrittore di sicurezza di un file o di una risorsa. Il descrittore di sicurezza contiene gli elenchi di controllo di accesso della risorsa. L'elenco di controllo di accesso specifica le autorizzazioni di accesso di utenti e gruppi alla risorsa.
A partire da Windows PowerShell 3.0, è possibile usare il parametro InputObject di Get-Acl
per ottenere il descrittore di sicurezza di oggetti che non hanno un percorso.
Esempio
Esempio 1- Ottenere un elenco di controllo di accesso per una cartella
Questo esempio ottiene il descrittore di sicurezza della C:\Windows
directory.
Get-Acl C:\Windows
Esempio 2: ottenere un elenco di controllo di accesso per una cartella usando caratteri jolly
Questo esempio ottiene il percorso di PowerShell e l'SDDL per tutti i .log
file nella C:\Windows
directory i cui nomi iniziano con s
.
Get-Acl C:\Windows\s*.log | Format-List -Property PSPath, Sddl
Il comando usa il Get-Acl
cmdlet per ottenere oggetti che rappresentano i descrittori di sicurezza di ogni file di log. Usa un operatore pipeline (|
) per inviare i risultati al Format-List
cmdlet . Il comando usa il parametro Property di Format-List
per visualizzare solo le proprietà PsPath e SDDL di ogni oggetto descrittore di sicurezza.
Elenchi vengono spesso usati in PowerShell, perché i valori lunghi vengono troncati nelle tabelle.
I valori SDDL sono importanti per gli amministratori di sistema, perché sono semplici stringhe di testo che contengono tutte le informazioni nel descrittore di sicurezza. Di conseguenza, sono facili da passare e archiviare e possono essere analizzate quando è necessario.
Esempio 3- Ottenere il conteggio delle voci di controllo per un elenco di controllo di accesso
Questo esempio ottiene i descrittori di sicurezza dei .log
file nella C:\Windows
directory i cui nomi iniziano con s
.
Get-Acl C:\Windows\s*.log -Audit | ForEach-Object { $_.Audit.Count }
Usa il parametro Audit per ottenere i record di controllo dell'elenco di controllo di accesso di sistema nel descrittore di sicurezza.
Usa quindi il ForEach-Object
cmdlet per contare il numero di record di controllo associati a ogni file. Il risultato è un elenco di numeri che rappresenta il numero di record di controllo di ogni file di log.
Esempio 4- Ottenere un elenco di controllo di accesso per una chiave del Registro di sistema
In questo esempio viene usato il Get-Acl
cmdlet per ottenere il descrittore di sicurezza della sottochiave Control (HKLM:\SYSTEM\CurrentControlSet\Control
) del Registro di sistema.
Get-Acl -Path HKLM:\System\CurrentControlSet\Control | Format-List
Il parametro Path specifica la sottochiave Control. L'operatore pipeline (|
) passa il descrittore di sicurezza che Get-Acl
ottiene al Format-List
comando , che formatta le proprietà del descrittore di sicurezza come elenco in modo che siano facili da leggere.
Esempio 5- Ottenere un elenco di controllo di accesso usando **InputObject**
In questo esempio viene utilizzato il parametro InputObject di per ottenere il descrittore di Get-Acl
sicurezza di un oggetto sottosistema di archiviazione.
Get-Acl -InputObject (Get-StorageSubSystem -Name S087)
Parametri
-Audit
Ottiene i dati di controllo per il descrittore di sicurezza dall'elenco di controllo di accesso di sistema.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Exclude
Omette gli elementi specificati. Il valore di questo parametro qualifica il parametro Path. Immettere un elemento o un criterio di percorso, ad esempio *.txt
. I caratteri jolly sono consentiti.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Filter
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'uso dei caratteri jolly, dipende dal provider. I filtri sono più efficienti rispetto ad altri parametri, perché il provider li applica durante il recupero degli oggetti, anziché filtrare gli oggetti dopo il recupero.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Include
Ottiene solo gli elementi specificati. Il valore di questo parametro qualifica il parametro Path. Immettere un elemento o un criterio di percorso, ad esempio *.txt
. I caratteri jolly sono consentiti.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-InputObject
Ottiene il descrittore di sicurezza per l'oggetto specificato. Immettere una variabile che contiene l'oggetto o un comando che lo ottiene.
Non è possibile inviare tramite pipe un oggetto, diverso da un percorso, a Get-Acl
. Usare invece il parametro InputObject in modo esplicito nel comando.
Questo parametro è stato introdotto in Windows PowerShell 3.0.
Type: | PSObject |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-LiteralPath
Specifica il percorso di una risorsa. A differenza di Path, il valore del parametro LiteralPath viene usato esattamente com'è digitato. Nessun carattere viene interpretato come carattere jolly. Se il percorso include caratteri di escape, racchiuderlo tra virgolette singole. Le virgolette singole indicano a PowerShell di non interpretare alcun carattere come sequenze di escape.
Questo parametro è stato introdotto in Windows PowerShell 3.0.
Type: | String[] |
Aliases: | PSPath |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Path
Specifica il percorso di una risorsa. Get-Acl
ottiene il descrittore di sicurezza della risorsa indicata dal percorso. I caratteri jolly sono consentiti. Se si omette il parametro Path , Get-Acl
ottiene il descrittore di sicurezza della directory corrente.
Il nome del parametro ("Path") è facoltativo.
Type: | String[] |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | True |
Input
È possibile inviare tramite pipe una stringa contenente un percorso a questo cmdlet.
Output
Questo cmdlet restituisce un oggetto che rappresenta gli ACL che ottiene. Il tipo di oggetto dipende dal tipo di elenco di controllo di accesso.
Note
Questo cmdlet è disponibile solo nelle piattaforme Windows.
Per impostazione predefinita, Get-Acl
visualizza il percorso di PowerShell per la risorsa (<provider>::<resource-path>
), il proprietario della risorsa e "Access", un elenco (matrice) delle voci di controllo di accesso nell'elenco di controllo di accesso discrezionale (DACL) per la risorsa. L'elenco di controllo di accesso discrezionale è 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, PowerShell visualizza le proprietà e i valori delle proprietà seguenti:
- Gruppo: gruppo di sicurezza del proprietario.
- Audit: elenco (matrice) di voci nell'elenco di controllo di accesso di sistema (SACL). L'elenco di controllo di accesso di sistema specifica i tipi di tentativi di accesso per cui Windows genera record di controllo.
- Sddl: descrittore di sicurezza della risorsa visualizzata in una singola stringa di testo nel formato Security Descriptor Definition Language. PowerShell usa il metodo GetSddlForm dei descrittori di sicurezza per ottenere questi dati.
Poiché Get-Acl
è supportato dai provider del file system e del Registro di sistema, è possibile usare Get-Acl
per visualizzare l'elenco di controllo di accesso degli oggetti del file system, ad esempio file e directory e oggetti del Registro di sistema, ad esempio chiavi e voci del Registro di sistema.