Condividi tramite


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.