Set-Acl
Modifica il descrittore di sicurezza di un elemento specificato, ad esempio un file o una chiave del Registro di sistema.
Sintassi
ByPath (Impostazione predefinita)
Set-Acl
[-Path] <String[]>
[-AclObject] <Object>
[[-CentralAccessPolicy] <String>]
[-ClearCentralAccessPolicy]
[-Passthru]
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-WhatIf]
[-Confirm]
[-UseTransaction]
[<CommonParameters>]
ByInputObject
Set-Acl
[-InputObject] <PSObject>
[-AclObject] <Object>
[-Passthru]
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-WhatIf]
[-Confirm]
[-UseTransaction]
[<CommonParameters>]
ByLiteralPath
Set-Acl
[-AclObject] <Object>
[[-CentralAccessPolicy] <String>]
-LiteralPath <String[]>
[-ClearCentralAccessPolicy]
[-Passthru]
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-WhatIf]
[-Confirm]
[-UseTransaction]
[<CommonParameters>]
Descrizione
Il Set-Acl cmdlet modifica il descrittore di sicurezza di un elemento specificato, ad esempio un file o una chiave del Registro di sistema, in modo che corrisponda ai valori di un descrittore di sicurezza fornito dall'utente.
Per utilizzare Set-Acl, utilizzare il parametro Path o InputObject per identificare l'elemento di cui si desidera modificare il descrittore di sicurezza.
Utilizzare quindi i parametri AclObject o SecurityDescriptor per fornire un descrittore di sicurezza con i valori che si desidera applicare.
Set-Acl Applica il descrittore di sicurezza fornito.
Utilizza il valore del parametro AclObject come modello e modifica i valori nel descrittore di sicurezza dell'elemento in modo che corrispondano ai valori nel parametro AclObject .
Esempio
Esempio 1: Copiare un descrittore di sicurezza da un file a un altro
$DogACL = Get-Acl -Path "C:\Dog.txt"
Set-Acl -Path "C:\Cat.txt" -AclObject $DogACL
Questi comandi copiano i valori dal descrittore di sicurezza del file di Dog.txt al descrittore di sicurezza del file di Cat.txt. Al termine dei comandi, i descrittori di sicurezza dei file Dog.txt e Cat.txt sono identici.
Il primo comando usa il cmdlet Get-Acl per ottenere il descrittore di sicurezza del file Dog.txt. L'operatore di assegnazione (=) memorizza il descrittore di sicurezza nel valore della variabile $DogACL.
Il secondo comando consente Set-Acl di modificare i valori nell'ACL di Cat.txt con i valori in $DogACL.
Il valore del parametro Path è il percorso del file Cat.txt. Il valore del parametro AclObject è l'ACL del modello, in questo caso l'ACL di Dog.txt salvato nella variabile $DogACL.
Esempio 2: Usare l'operatore pipeline per passare un descrittore
Get-Acl -Path "C:\Dog.txt" | Set-Acl -Path "C:\Cat.txt"
Questo comando è quasi identico a quello dell'esempio precedente, ad eccezione del fatto che utilizza un operatore pipeline per inviare il descrittore di sicurezza da un Get-Aclcommand a un Set-Acl comando.
Il primo comando utilizza il cmdlet Get-Acl per ottenere il descrittore di sicurezza del file Dog.txt.
L'operatore pipeline (|) passa un oggetto che rappresenta il descrittore di sicurezza Dog.txt al Set-Acl cmdlet.
Il secondo comando viene utilizzato Set-Acl per applicare il descrittore di sicurezza di Dog.txt a Cat.txt.
Al termine del comando, gli ACL dei file Dog.txt e Cat.txt sono identici.
Esempio 3: Applicare un descrittore di sicurezza a più file
$NewAcl = Get-Acl File0.txt
Get-ChildItem -Path "C:\temp" -Recurse -Include "*.txt" -Force | Set-Acl -AclObject $NewAcl
Questi comandi applicano i descrittori di sicurezza nel file File0.txt a tutti i file di testo nella directory C:\Temp e in tutte le relative sottodirectory.
Il primo comando ottiene il descrittore di sicurezza del file File0.txt nella directory corrente e utilizza l'operatore di assegnazione (=) per memorizzarlo nella variabile $NewACL.
Il primo comando nella pipeline usa il cmdlet Get-ChildItem per ottenere tutti i file di testo nella directory C:\Temp. Il parametro Recurse estende il comando a tutte le sottodirectory di C:\temp. Il parametro Include limita 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", poiché il parametro Recurse funziona sulle directory, non sui file.
L'operatore della pipeline (|) invia gli oggetti che rappresentano i file recuperati al Set-Acl cmdlet, che applica il descrittore di sicurezza nel parametro AclObject a tutti i file nella pipeline.
In pratica, è consigliabile utilizzare il parametro WhatIf con tutti i Set-Acl comandi che possono influire su più di un elemento.
In questo caso, il secondo comando nella pipeline sarebbe "Set-Acl -AclObject $NewAcl -WhatIf".
Questo comando elenca i file che sarebbero interessati dal comando.
Dopo aver esaminato il risultato, è possibile eseguire nuovamente il comando senza il parametro WhatIf .
Parametri
-AclObject
Specifica un ACL con i valori delle proprietà desiderati.
Set-Acl modifica l'ACL dell'elemento specificato dal parametro Path o InputObject in modo che corrisponda ai valori nell'oggetto di sicurezza specificato.
È possibile salvare l'output di un comando Get-Acl in una variabile e quindi utilizzare il parametro AclObject per passare la variabile oppure digitare un Get-Acl comando.
Proprietà dei parametri
| Tipo: | Object |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | 1 |
| Obbligatorio: | True |
| Valore dalla pipeline: | True |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-CentralAccessPolicy
Stabilisce o modifica i criteri di accesso centrale dell'elemento. Immettere l'ID CAP o il nome descrittivo di un criterio di accesso centrale nel computer.
A partire da Windows Server 2012, gli amministratori possono usare Active Directory e Criteri di gruppo per impostare criteri di accesso centrale per utenti e gruppi. Per altre informazioni, vedere Controllo dinamico degli accessi: Panoramica dello scenario.
Questo parametro è stato introdotto in Windows PowerShell 3.0.
Proprietà dei parametri
| Tipo: | String |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
ByPath
| Posizione: | 2 |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | True |
| Valore dagli argomenti rimanenti: | False |
ByLiteralPath
| Posizione: | 2 |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | True |
| Valore dagli argomenti rimanenti: | False |
-ClearCentralAccessPolicy
Rimuove i criteri di accesso centrale dall'elemento specificato.
A partire da Windows Server 2012, gli amministratori possono usare Active Directory e Criteri di gruppo per impostare criteri di accesso centrale per utenti e gruppi. Per altre informazioni, vedere Controllo dinamico degli accessi: Panoramica dello scenario.
Questo parametro è stato introdotto in Windows PowerShell 3.0.
Proprietà dei parametri
| Tipo: | SwitchParameter |
| Valore predefinito: | False |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
ByPath
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
ByLiteralPath
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-Confirm
Richiede conferma prima di eseguire il cmdlet.
Proprietà dei parametri
| Tipo: | SwitchParameter |
| Valore predefinito: | False |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
| Alias: | cfr |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-Exclude
Omette gli elementi specificati. Il valore di questo parametro qualifica il parametro Path. Immettere un elemento o un modello di percorso, ad esempio "*.txt". Sono consentiti i metacaratteri.
Proprietà dei parametri
| Tipo: | String[] |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | True |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-Filter
Specifica un filtro nel formato o nella lingua del provider. Il valore di questo parametro qualifica il parametro Path. La sintassi del filtro, incluso l'uso di caratteri jolly, dipende dal provider. I filtri sono più efficienti rispetto ad altri parametri, perché il provider li applica durante il recupero degli oggetti, invece di filtrare gli oggetti dopo il recupero.
Proprietà dei parametri
| Tipo: | String |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | True |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-Include
Modifica solo gli elementi specificati. Il valore di questo parametro qualifica il parametro Path. Immettere un elemento o un modello di percorso, ad esempio "*.txt". Sono consentiti i metacaratteri.
Proprietà dei parametri
| Tipo: | String[] |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | True |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-InputObject
Modifica il descrittore di sicurezza dell'oggetto specificato. Immettere una variabile contenente l'oggetto o un comando che ottiene l'oggetto .
Non è possibile reindirizzare l'oggetto da modificare in Set-Acl. Usare invece il parametro InputObject in modo esplicito nel comando .
Questo parametro è stato introdotto in Windows PowerShell 3.0.
Proprietà dei parametri
| Tipo: | PSObject |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
ByInputObject
| Posizione: | 0 |
| Obbligatorio: | True |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | True |
| Valore dagli argomenti rimanenti: | False |
-LiteralPath
Modifica il descrittore di sicurezza dell'elemento specificato. A differenza di Path, il valore del parametro LiteralPath viene usato esattamente come viene digitato. Nessun carattere viene interpretato come metacaratteri. Se il percorso include caratteri di escape, racchiudilo 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.
Proprietà dei parametri
| Tipo: | String[] |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
| Alias: | PSPath |
Set di parametri
ByLiteralPath
| Posizione: | Named |
| Obbligatorio: | True |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | True |
| Valore dagli argomenti rimanenti: | False |
-Passthru
Restituisce un oggetto che rappresenta il descrittore di sicurezza che è stato modificato. Per impostazione predefinita, questo cmdlet non genera alcun output.
Proprietà dei parametri
| Tipo: | SwitchParameter |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-Path
Modifica il descrittore di sicurezza dell'elemento specificato. Immettere il percorso di un elemento, ad esempio il percorso di un file o di una chiave del Registro di sistema. Sono consentiti i metacaratteri.
Se si passa un oggetto di sicurezza a Set-Acl (utilizzando i parametri AclObject o SecurityDescriptor o passando un oggetto di sicurezza da Get-Acl a Set-Acl) e si omette il parametro Path (nome e valore), Set-Acl viene utilizzato il percorso incluso nell'oggetto di sicurezza.
Proprietà dei parametri
| Tipo: | String[] |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | True |
| DontShow: | False |
Set di parametri
ByPath
| Posizione: | 0 |
| Obbligatorio: | True |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | True |
| Valore dagli argomenti rimanenti: | False |
-UseTransaction
Include il comando nella transazione attiva. Questo parametro è valido solo quando è in corso una transazione. Per ulteriori informazioni, vedere about_Transactions.
Proprietà dei parametri
| Tipo: | SwitchParameter |
| Valore predefinito: | False |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
| Alias: | usetx |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-WhatIf
Mostra gli effetti dell'esecuzione del cmdlet. Il cmdlet non viene eseguito.
Proprietà dei parametri
| Tipo: | SwitchParameter |
| Valore predefinito: | False |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
| Alias: | Wi |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
CommonParameters
Questo cmdlet supporta i parametri comuni: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Per altre informazioni, vedi about_CommonParameters.
Input
System.Security.AccessControl.ObjectSecurity, System.Security.AccessControl.CommonSecurityDescriptor
È possibile reindirizzare un oggetto ACL o un descrittore di sicurezza a Set-Acl.
Output
FileSecurity
Per impostazione predefinita, Set-Acl non genera alcun output.
Tuttavia, se si utilizza il parametro Passthru , viene generato un oggetto di sicurezza.
Il tipo di oggetto di sicurezza dipende dal tipo di elemento.
Note
Il Set-Acl cmdlet è supportato dal file system di PowerShell e dai provider del Registro di sistema. Pertanto, è possibile utilizzarlo per modificare i descrittori di sicurezza di file, directory e chiavi di registro.