Condividi tramite


Set-ItemProperty

Crea o modifica il valore di una proprietà di un elemento.

Sintassi

Set-ItemProperty
   [-Path] <String[]>
   [-Name] <String>
   [-Value] <Object>
   [-PassThru]
   [-Force]
   [-Filter <String>]
   [-Include <String[]>]
   [-Exclude <String[]>]
   [-Credential <PSCredential>]
   [-WhatIf]
   [-Confirm]
   [-UseTransaction]
   [<CommonParameters>]
Set-ItemProperty
   [-Path] <String[]>
   -InputObject <PSObject>
   [-PassThru]
   [-Force]
   [-Filter <String>]
   [-Include <String[]>]
   [-Exclude <String[]>]
   [-Credential <PSCredential>]
   [-WhatIf]
   [-Confirm]
   [-UseTransaction]
   [<CommonParameters>]
Set-ItemProperty
   -LiteralPath <String[]>
   [-Name] <String>
   [-Value] <Object>
   [-PassThru]
   [-Force]
   [-Filter <String>]
   [-Include <String[]>]
   [-Exclude <String[]>]
   [-Credential <PSCredential>]
   [-WhatIf]
   [-Confirm]
   [-UseTransaction]
   [<CommonParameters>]
Set-ItemProperty
   -LiteralPath <String[]>
   -InputObject <PSObject>
   [-PassThru]
   [-Force]
   [-Filter <String>]
   [-Include <String[]>]
   [-Exclude <String[]>]
   [-Credential <PSCredential>]
   [-WhatIf]
   [-Confirm]
   [-UseTransaction]
   [<CommonParameters>]

Descrizione

Il Set-ItemProperty cmdlet modifica il valore della proprietà dell'elemento specificato. È possibile usare il cmdlet per definire o modificare le proprietà degli elementi. Ad esempio, è possibile usare Set-ItemProperty per impostare il valore della proprietà IsReadOnly di un oggetto file su $True.

Si usa Set-ItemProperty anche per creare e modificare i valori e i dati del Registro di sistema. Ad esempio, è possibile aggiungere una nuova voce del Registro di sistema a una chiave e definire o modificare il relativo valore.

Esempio

Esempio 1: Impostare una proprietà di un file

Questo comando imposta il valore della proprietà IsReadOnly del file "final.doc" su "true". Usa Path per specificare il file, Name per specificare il nome della proprietà e il parametro Value per specificare il nuovo valore.

Il file è un oggetto System.IO.FileInfo e IsReadOnly è solo una delle relative proprietà. Per visualizzare tutte le proprietà, digitare Get-Item C:\GroupFiles\final.doc | Get-Member -MemberType Property.

La $true variabile automatica rappresenta un valore "TRUE". Per altre informazioni, vedere about_Automatic_Variables.

Set-ItemProperty -Path C:\GroupFiles\final.doc -Name IsReadOnly -Value $true

Esempio 2: Create una voce e un valore del Registro di sistema

In questo esempio viene illustrato come usare Set-ItemProperty per creare una nuova voce del Registro di sistema e assegnare un valore alla voce. Crea la voce "NoOfEmployees" nella chiave "ContosoCompany" nella chiave "HKLM\Software" e imposta il valore su 823.

Poiché le voci del Registro di sistema vengono considerate proprietà delle chiavi del Registro di sistema, ovvero elementi, è possibile usare Set-ItemProperty per creare voci del Registro di sistema e per stabilire e modificare i valori.

Il primo comando crea la voce del Registro di sistema. Usa Path per specificare il percorso dell'unità e la HKLM: chiave "Software\MyCompany". Il comando usa Name per specificare il nome della voce e Valore per specificare un valore.

Il secondo comando usa il Get-ItemProperty cmdlet per visualizzare la nuova voce del Registro di sistema. Se si usano i Get-Item cmdlet o Get-ChildItem , le voci non vengono visualizzate perché sono proprietà di una chiave, non elementi o elementi figlio.

Il terzo comando modifica il valore della voce NoOfEmployees su 824.

È anche possibile usare il New-ItemProperty cmdlet per creare la voce del Registro di sistema e il relativo valore e quindi usare Set-ItemProperty per modificare il valore.

Per altre informazioni sull'unità HKLM: , digitare Get-Help Get-PSDrive. Per altre informazioni su come usare PowerShell per gestire il Registro di sistema, digitare Get-Help Registry.

Set-ItemProperty -Path "HKLM:\Software\ContosoCompany" -Name "NoOfEmployees" -Value 823
Get-ItemProperty -Path "HKLM:\Software\ContosoCompany"

PSPath        : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\software\contosocompany
PSParentPath  : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\software
PSChildName   : contosocompany
PSDrive       : HKLM
PSProvider    : Microsoft.PowerShell.Core\Registry
NoOfLocations : 2
NoOfEmployees : 823

Set-ItemProperty -Path "HKLM:\Software\ContosoCompany" -Name "NoOfEmployees" -Value 824
Get-ItemProperty -Path "HKLM:\Software\ContosoCompany"

PSPath        : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\software\contosocompany
PSParentPath  : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\software
PSChildName   : contosocompany
PSDrive       : HKLM
PSProvider    : Microsoft.PowerShell.Core\Registry
NoOfLocations : 2
NoOfEmployees : 824

Esempio 3: Modificare un elemento usando la pipeline

Questi comandi mostrano come usare un operatore pipeline (|) per inviare un elemento a Set-ItemProperty.

La prima parte del comando usa Get-ChildItem per ottenere un oggetto che rappresenta il file "Weekly.txt". Il comando usa un operatore della pipeline per inviare l'oggetto file a Set-ItemProperty. Il Set-ItemProperty comando usa i parametri Name e Value per specificare la proprietà e il nuovo valore.

Questo comando equivale all'uso del parametro InputObject per specificare l'oggetto che Get-ChildItem ottiene.

Get-ChildItem weekly.txt | Set-ItemProperty -Name IsReadOnly -Value $True

Parametri

-Confirm

Richiede la conferma dell'utente prima di eseguire il cmdlet.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Credential

Specifica un account utente che dispone delle autorizzazioni per eseguire questa azione. Il valore predefinito è l'utente corrente.

Digitare un nome utente, ad esempio "User01" o "Domain01\User01" oppure immettere un oggetto PSCredential , ad esempio uno generato dal Get-Credential cmdlet. Se si digita un nome utente, viene richiesto di specificare una password.

Avviso

Questo parametro non è supportato dai provider installati con Windows PowerShell.

Type:PSCredential
Position:Named
Default value:Current user
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Exclude

Specifica gli elementi in base al quale il cmdlet non agisce e include tutti gli altri. Il valore di questo parametro qualifica il parametro Path. Immettere un elemento o modello 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: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 di altri parametri, perché il provider li applica quando il cmdlet ottiene gli oggetti invece di filtrare gli oggetti di PowerShell dopo il recupero.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

-Force

Forza il cmdlet a impostare una proprietà sugli elementi che altrimenti non possono essere accessibili dall'utente. L'implementazione varia a seconda del provider. Per altre informazioni, vedere about_Providers.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Include

Specifica solo gli elementi in base al quale il cmdlet agisce, che esclude tutti gli altri. Il valore di questo parametro qualifica il parametro Path. Immettere un elemento o modello 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:False

-InputObject

Specifica l'oggetto con le proprietà modificate da questo cmdlet. Immettere una variabile che contiene l'oggetto o un comando che lo ottiene.

Type:PSObject
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-LiteralPath

Specifica un percorso della proprietà item. A differenza del parametro Path, il valore di 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 i caratteri come sequenze di escape.

Type:String[]
Aliases:PSPath
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Name

Specifica il nome della proprietà.

Type:String
Aliases:PSProperty
Position:1
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-PassThru

Restituisce un oggetto che rappresenta la proprietà item. Per impostazione predefinita, il cmdlet non genera alcun output.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Path

Specifica il percorso degli elementi con la proprietà da modificare.

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-UseTransaction

Include il comando nella transazione attiva. Questo parametro è valido solo quando è in corso una transazione. Per altre informazioni, vedere about_Transactions.

Type:SwitchParameter
Aliases:usetx
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Value

Specifica il valore della proprietà.

Type:Object
Position:2
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-WhatIf

Mostra l'esito in caso di esecuzione del cmdlet. Il cmdlet non viene eseguito.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Input

PSObject

È possibile inviare oggetti tramite pipe a questo cmdlet.

Output

None, System.Management.Automation.PSCustomObject

Questo cmdlet genera un oggetto PSCustomObject che rappresenta l'elemento modificato e il nuovo valore della proprietà, se si specifica il parametro PassThru . In caso contrario, il cmdlet non genera alcun output.

Note

Set-ItemProperty è progettato per lavorare con i dati esposti da qualsiasi provider. Per elencare i provider disponibili nella sessione, digitare Get-PSProvider. Per altre informazioni, vedere about_Providers.