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]
   [<CommonParameters>]
Set-ItemProperty
   [-Path] <string[]>
   -InputObject <psobject>
   [-PassThru]
   [-Force]
   [-Filter <string>]
   [-Include <string[]>]
   [-Exclude <string[]>]
   [-Credential <pscredential>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-ItemProperty
   [-Name] <string>
   [-Value] <Object>
   -LiteralPath <string[]>
   [-PassThru]
   [-Force]
   [-Filter <string>]
   [-Include <string[]>]
   [-Exclude <string[]>]
   [-Credential <pscredential>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-ItemProperty
   -LiteralPath <string[]>
   -InputObject <psobject>
   [-PassThru]
   [-Force]
   [-Filter <string>]
   [-Include <string[]>]
   [-Exclude <string[]>]
   [-Credential <pscredential>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-ItemProperty
   [-Path] <string[]>
   [-Name] <string>
   [-Value] <Object>
   [-PassThru]
   [-Force]
   [-Filter <string>]
   [-Include <string[]>]
   [-Exclude <string[]>]
   [-Credential <pscredential>]
   [-WhatIf]
   [-Confirm]
   [-Type <RegistryValueKind>]
   [<CommonParameters>]
Set-ItemProperty
   [-Path] <string[]>
   -InputObject <psobject>
   [-PassThru]
   [-Force]
   [-Filter <string>]
   [-Include <string[]>]
   [-Exclude <string[]>]
   [-Credential <pscredential>]
   [-WhatIf]
   [-Confirm]
   [-Type <RegistryValueKind>]
   [<CommonParameters>]
Set-ItemProperty
   [-Name] <string>
   [-Value] <Object>
   -LiteralPath <string[]>
   [-PassThru]
   [-Force]
   [-Filter <string>]
   [-Include <string[]>]
   [-Exclude <string[]>]
   [-Credential <pscredential>]
   [-WhatIf]
   [-Confirm]
   [-Type <RegistryValueKind>]
   [<CommonParameters>]
Set-ItemProperty
   -LiteralPath <string[]>
   -InputObject <psobject>
   [-PassThru]
   [-Force]
   [-Filter <string>]
   [-Include <string[]>]
   [-Exclude <string[]>]
   [-Credential <pscredential>]
   [-WhatIf]
   [-Confirm]
   [-Type <RegistryValueKind>]
   [<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 utilizzare 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 il valore "TRUE". Per altre informazioni, vedere about_Automatic_Variables.

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

Esempio 2: Creare 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 per assegnare un valore alla voce. Crea la voce "NoOfEmployees" nella chiave "ContosoCompany" nella HKLM\Software chiave e ne 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 relativi valori.

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

Il primo comando crea la voce del Registro di sistema. Usa Path per specificare il percorso dell'unità HKLM: e della Software\MyCompany chiave. Il comando usa Name per specificare il nome della voce e Value 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.

Esempio 3: Modificare un elemento usando la pipeline

Nell'esempio viene usato Get-ChildItem per ottenere il weekly.txt file. L'oggetto file viene inviato tramite pipe a Set-ItemProperty. Il Set-ItemProperty comando usa i parametri Name e Value per specificare la proprietà e il nuovo valore.

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

Parametri

-Confirm

Richiede conferma prima di eseguire il cmdlet.

Tipo:SwitchParameter
Alias:cf
Posizione:Named
Valore predefinito:False
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Credential

Nota

Questo parametro non è supportato da alcun provider installato con PowerShell. Per rappresentare un altro utente o elevare le credenziali durante l'esecuzione di questo cmdlet, usare Invoke-Command.

Tipo:PSCredential
Posizione:Named
Valore predefinito:Current user
Necessario:False
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-Exclude

Specifica, come matrice di stringhe, un elemento o elementi esclusi dal cmdlet nell'operazione. Il valore di questo parametro qualifica il parametro Path . Immettere un elemento o un modello di percorso, ad esempio *.txt. I caratteri jolly sono consentiti. Il parametro Exclude è effettivo solo quando il comando include il contenuto di un elemento, ad esempio C:\Windows\*, dove il carattere jolly specifica il contenuto della C:\Windows directory.

Tipo:String[]
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:True

-Filter

Specifica un filtro per qualificare il parametro Path . Il provider FileSystem è l'unico provider di PowerShell installato che supporta l'uso dei filtri. È possibile trovare la sintassi per il linguaggio di filtro FileSystem in about_Wildcards. I filtri sono più efficienti rispetto ad altri parametri, perché il provider li applica quando il cmdlet ottiene gli oggetti anziché filtrare gli oggetti dopo il recupero.

Tipo:String
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:True

-Force

Forza il cmdlet a impostare una proprietà sugli elementi a cui non è possibile accedere in altro modo dall'utente. L'implementazione varia in base al provider. Per altre informazioni, vedere about_Providers.

Tipo:SwitchParameter
Posizione:Named
Valore predefinito:False
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Include

Specifica, come matrice di stringhe, un elemento o elementi inclusi nel cmdlet nell'operazione. Il valore di questo parametro qualifica il parametro Path . Immettere un elemento o un modello di percorso, ad esempio "*.txt". I caratteri jolly sono consentiti. Il parametro Include è effettivo solo quando il comando include il contenuto di un elemento, ad esempio C:\Windows\*, dove il carattere jolly specifica il contenuto della C:\Windows directory.

Tipo:String[]
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:True

-InputObject

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

Tipo:PSObject
Posizione:Named
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-LiteralPath

Specifica un percorso di una o più posizioni. Il valore di LiteralPath viene usato esattamente come viene tipizzato. 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.

Per altre informazioni, vedere about_Quoting_Rules.

Tipo:String[]
Alias:PSPath, LP
Posizione:Named
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-Name

Specifica il nome della proprietà.

Tipo:String
Alias:PSProperty
Posizione:1
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-PassThru

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

Tipo:SwitchParameter
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Path

Specifica il percorso degli elementi con la proprietà da modificare. I caratteri jolly sono consentiti.

Tipo:String[]
Posizione:0
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:True
Accettare caratteri jolly:True

-Type

Si tratta di un parametro dinamico reso disponibile dal provider del Registro di sistema . Il provider del Registro di sistema e questo parametro sono disponibili solo in Windows.

Specifica il tipo di proprietà aggiunta da questo cmdlet. I valori validi per questo parametro sono:

  • String: specifica una stringa con terminazione Null. Utilizzato per i valori di REG_SZ .
  • ExpandString: specifica una stringa con terminazione Null che contiene riferimenti non espansi alle variabili di ambiente espanse quando viene recuperato il valore. Utilizzato per i valori REG_EXPAND_SZ .
  • Binary: specifica i dati binari in qualsiasi formato. Utilizzato per i valori REG_BINARY .
  • DWord: specifica un numero binario a 32 bit. Utilizzato per i valori REG_DWORD .
  • MultiString: specifica una matrice di stringhe con terminazione Null di due caratteri Null. Utilizzato per i valori REG_MULTI_SZ .
  • Qword: specifica un numero binario a 64 bit. Utilizzato per i valori REG_QWORD .
  • Unknown: indica un tipo di dati del Registro di sistema non supportato, ad esempio REG_RESOURCE_LIST valori.
Tipo:RegistryValueKind
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-Value

Specifica il valore della proprietà.

Tipo:Object
Posizione:2
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-WhatIf

Mostra gli effetti dell'esecuzione del cmdlet. Il cmdlet non viene eseguito.

Tipo:SwitchParameter
Alias:wi
Posizione:Named
Valore predefinito:False
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

Input

PSObject

È possibile inviare tramite pipe oggetti a questo cmdlet.

Output

None

Per impostazione predefinita, questo cmdlet non restituisce alcun output.

PSCustomObject

Quando si utilizza il parametro PassThru , questo cmdlet restituisce un oggetto PSCustomObject che rappresenta l'elemento modificato e il relativo nuovo valore della proprietà.

Note

PowerShell include gli alias seguenti per Set-ItemProperty:

  • Tutte le piattaforme:
    • sp

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.