Modifica il descrittore di sicurezza di una risorsa specificata, ad esempio un file o una chiave del Registro di sistema.
Sintassi
Set-Acl [-Path] <string[]> [-AclObject] <ObjectSecurity> [-Exclude <string[]>] [-Filter <string>] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]
Descrizione
Il cmdlet Set-Acl modifica il descrittore di sicurezza di una risorsa specificata, ad esempio un file o una chiave del Registro di sistema, in base ai valori di un descrittore di sicurezza fornito dall'utente.
Per utilizzare Set-Acl, utilizzare il parametro Path per identificare la risorsa di cui si desidera modificare il descrittore di sicurezza e il parametro AclObject per fornire un descrittore di sicurezza che dispone dei valori da applicare. Set-Acl utilizza il valore del parametro AclObject come modello e modifica i valori del descrittore di sicurezza della risorsa in base ai valori del parametro AclObject.
Parametri
-AclObject <ObjectSecurity>
Specifica un ACL con i valori della proprietà desiderati. Set-Acl modifica l'ACL della risorsa specificata dal parametro Path in base ai valori dell'oggetto sicurezza specificato.
È possibile salvare l'output di un comando Get-Acl in una variabile, quindi utilizzare il parametro AclObject per passare la variabile oppure digitare un comando Get-Acl.
Obbligatorio? |
true |
Posizione? |
2 |
Valore predefinito |
|
Accettare input da pipeline? |
true (ByValue) |
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[]>
Modifica 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 |
-PassThru
Restituisce un oggetto che rappresenta il descrittore di sicurezza. Per impostazione predefinita, il cmdlet non genera alcun output.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-Path <string[]>
Identifica la risorsa di cui si desidera modificare il descrittore di sicurezza. Immettere il percorso della risorsa, ad esempio il percorso di un file o di una chiave del Registro di sistema. È consentito l'utilizzo di caratteri jolly.
Se si passa a Set-Acl un oggetto sicurezza, utilizzando il parametro AclObject o passando un oggetto da Get-Acl a Set-Acl, e si omette il parametro Path (nome e valore), Set-Acl utilizza il percorso incluso nell'oggetto sicurezza.
Obbligatorio? |
true |
Posizione? |
1 |
Valore predefinito |
|
Accettare input da pipeline? |
true (ByPropertyName) |
Accettare caratteri jolly? |
false |
-Confirm
Chiede una conferma prima di eseguire il comando.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-WhatIf
Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
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.Security.AccessControl.ObjectSecurity È possibile reindirizzare un descrittore di sicurezza a Set-Acl. |
Output |
Nessuno o oggetto sicurezza Per impostazione predefinita, Set-Acl non genera alcun output. Tuttavia, se si utilizza il parametro -Passthru, viene generato un oggetto di sicurezza. Il tipo dell'oggetto sicurezza dipende dal tipo della risorsa. |
Note
Il cmdlet Set-Acl è supportato dai provider FileSystem e Registry di Windows PowerShell e può pertanto essere utilizzato per modificare i descrittori di sicurezza di file, directory e chiavi del Registro di sistema.
Se per un parametro vengono specificati più valori, utilizzare virgole per separarli. Ad esempio, "<nome-parametro> <valore1>, <valore2>".
Esempio 1
C:\PS>$DogACL = get-acl c:\dog.txt C:\PS>set-acl -path C:\cat.txt -AclObject $DogACL Descrizione ----------- Tramite questi comandi vengono copiati i valori dal descrittore di sicurezza del file Dog.txt a quello del file Cat.txt. Al termine dell'esecuzione del comando, i descrittori di sicurezza dei file Dog.txt e Cat.txt sono identici. Con il primo comando viene utilizzato il cmdlet Get-Acl per ottenere il descrittore di sicurezza del file Dog.txt. L'operatore di assegnazione (=) consente di archiviare il descrittore di sicurezza nel valore della variabile $DogACL. Con il secondo comando viene utilizzato Set-Acl per modificare i valori dell'elenco di controllo di accesso di Cat.txt in base ai valori presenti in $DogACL. Il valore del parametro Path rappresenta il percorso del file Cat.txt. Il valore del parametro AclObject rappresenta l'ACL da utilizzare come modello, ovvero, in questo caso, l'ACL di Dog.txt salvato nella variabile $DogACL.
Esempio 2
C:\PS>get-acl c:\dog.txt | set-acl -path C:\cat.txt Descrizione ----------- Questo comando è molto simile a quello dell'esempio precedente, ad eccezione del fatto che viene utilizzato un operatore pipeline per inviare il descrittore di sicurezza recuperato da un comando Get-Acl a un comando Set-Acl. Con il primo comando viene utilizzato il cmdlet Get-Acl per ottenere il descrittore di sicurezza del file Dog.txt. L'operatore pipeline (|) consente di passare un oggetto che rappresenta il descrittore di sicurezza di Dog.txt al comando Set-Acl. Il secondo comando utilizza il cmdlet Set-Acl per applicare il descrittore di sicurezza di Dog.txt a Cat.txt. Al termine dell'esecuzione del comando, gli ACL dei file Dog.txt e Cat.txt sono identici.
Esempio 3
C:\PS>$newACL = get-acl file0.txt C:\PS>get-childitem c:\temp -recurse -include *.txt -force | set-acl -aclobject $newacl Descrizione ----------- Tramite questi comandi vengono applicati i descrittori di sicurezza inclusi nel file File0.txt a tutti i file di testo nella directory C:\Temp e in tutte le sottodirectory. Il primo comando consente di ottenere il descrittore di sicurezza del file File0.txt nella directory corrente. Nel comando viene utilizzato l'operatore di assegnazione (=) per archiviare il descrittore nella variabile $newACL. Con il primo comando nella pipeline viene utilizzato il cmdlet Get-ChildItem per ottenere tutti i file di testo presenti nella directory C:\Temp. Il parametro Recurse consente di estendere il comando a tutte le sottodirectory di C:\temp. Il parametro Include consente di limitare i file recuperati a quelli con estensione txt. Il parametro Force consente di ottenere i file nascosti, che altrimenti verrebbero esclusi. Non è possibile utilizzare "c:\temp\*.txt", in quanto il parametro Recurse funziona solo con le directory e non con i file. L'operatore pipeline (|) consente di inviare gli oggetti che rappresentano i file recuperati al comando Set-Acl, tramite il quale il descrittore di sicurezza incluso nel parametro AclObject viene applicato a tutti i file nella pipeline. È consigliabile utilizzare il parametro Whatif con tutti i comandi Set-Acl che possono riguardare più di una risorsa. In questo caso, il secondo comando della pipeline sarebbe "set-acl -aclobject $newacl -whatif". Tramite questo comando vengono elencati i file interessati dal comando. Dopo avere recuperato il risultato, è possibile eseguire di nuovo il comando senza il parametro Whatif.
Vedere anche