共用方式為


Set-ItemProperty

建立或變更專案屬性的值。

語法

propertyValuePathSet (預設值)

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

propertyPSObjectPathSet

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

propertyValueLiteralPathSet

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

propertyPSObjectLiteralPathSet

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

Description

Set-ItemProperty Cmdlet 會變更指定項目的 屬性值。 您可以使用 Cmdlet 來建立或變更項目的屬性。 例如,您可以使用 Set-ItemProperty,將檔案物件的 IsReadOn ly 屬性的值設定為 $True

您也可以使用 Set-ItemProperty 來建立和變更登錄值和數據。 例如,您可以將新的登錄專案新增至機碼,並建立或變更其值。

範例

範例 1:設定檔案的屬性

此命令會將 「final.doc」 檔案的 IsReadOn ly 屬性的值設定為 “true”。 它會使用 Path 來指定檔案、Name 來指定屬性的名稱,以及 Value 參數來指定新的值。

檔案是 System.IO.FileInfo 物件,IsReadOnly 只是它的其中一個屬性。 若要檢視所有屬性,請輸入 Get-Item C:\GroupFiles\final.doc | Get-Member -MemberType Property

$true 自動變數代表 「TRUE」 的值。 如需詳細資訊,請參閱 about_Automatic_Variables

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

範例 2:建立登錄專案和值

此範例示範如何使用 Set-ItemProperty 建立新的登錄專案,並將值指派給專案。 它會在 「HKLM\Software」 機碼的 「ContosoCompany」 機碼中建立 “NoOfEmployees” 專案,並將其值設定為 823。

因為登錄專案會被視為登錄機碼的屬性,也就是專案,因此您可以使用 Set-ItemProperty 來建立登錄專案,以及建立和變更其值。

第一個命令會建立登錄專案。 它會使用 Path 來指定 HKLM: 磁碟驅動器的路徑和 “Software\MyCompany” 機碼。 此命令會使用 Name 來指定專案名稱和 Value 來指定值。

第二個命令會使用 Get-ItemProperty Cmdlet 來查看新的登錄專案。 如果您使用 Get-ItemGet-ChildItem Cmdlet,專案就不會顯示,因為它們是索引鍵的屬性,而不是專案或子專案。

第三個命令會將 NoOfEmployees 專案的值變更為 824。

您也可以使用 New-ItemProperty Cmdlet 來建立登錄專案及其值,然後使用 Set-ItemProperty 來變更值。

如需 HKLM: 磁碟驅動器的詳細資訊,請輸入 Get-Help Get-PSDrive。 如需如何使用 PowerShell 管理登錄的詳細資訊,請輸入 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

範例 3:使用管線修改專案

這些命令示範如何使用管線運算符 (|) 將專案傳送至 Set-ItemProperty

命令的第一個部分會使用 Get-ChildItem 來取得代表 「Weekly.txt」 檔案的物件。 命令會使用管線運算符將檔案物件傳送至 Set-ItemPropertySet-ItemProperty 命令會使用 NameValue 參數來指定 屬性及其新值。

此命令相當於使用 InputObject 參數來指定 Get-ChildItem 取得的物件。

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

參數

-Confirm

在執行 Cmdlet 之前,提示您進行確認。

參數屬性

類型:SwitchParameter
預設值:False
支援萬用字元:False
不要顯示:False
別名:cf

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Credential

指定具有執行此動作許可權的用戶帳戶。 預設值為目前的使用者。

輸入使用者名稱,例如 「User01」 或 「Domain01\User01」,或輸入 PSCredential 物件,例如 Get-Credential Cmdlet 所產生的用戶名稱。 如果您輸入使用者名稱,系統會提示您輸入密碼。

警告

任何與 Windows PowerShell 一起安裝的提供者都不支援此參數。

參數屬性

類型:PSCredential
預設值:Current user
支援萬用字元:False
不要顯示:False

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:True
來自剩餘引數的值:False

-Exclude

指定 Cmdlet 不會作用的專案,並包含所有其他專案。 此參數的值對 路徑 參數進行限定。 輸入路徑專案或模式,例如 「*.txt」。。 允許使用通配符字元。

參數屬性

類型:

String[]

預設值:None
支援萬用字元:False
不要顯示:False

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Filter

以提供者的格式或語言指定篩選。 此參數的值對 路徑 參數進行限定。

篩選的語法,包括使用通配符,取決於提供者。 篩選比其他參數更有效率,因為提供者會在 Cmdlet 取得物件時套用它們,而不是在擷取對象之後讓 PowerShell 篩選物件。

參數屬性

類型:String
預設值:None
支援萬用字元:True
不要顯示:False

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Force

強制 Cmdlet 在用戶無法存取的項目上設定屬性。 實作會因提供者而異。 如需詳細資訊,請參閱 about_Providers

參數屬性

類型:SwitchParameter
預設值:False
支援萬用字元:False
不要顯示:False

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Include

僅指定 Cmdlet 作用所在的專案,這會排除所有其他專案。 此參數的值對 路徑 參數進行限定。 輸入路徑專案或模式,例如 「*.txt」。。 允許使用通配符字元。

參數屬性

類型:

String[]

預設值:None
支援萬用字元:False
不要顯示:False

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-InputObject

指定具有這個 Cmdlet 變更之屬性的物件。 輸入包含 物件的變數,或取得物件的命令。

參數屬性

類型:PSObject
預設值:None
支援萬用字元:False
不要顯示:False

參數集

propertyPSObjectPathSet
Position:Named
必要:True
來自管線的值:True
來自管線按屬性名稱的值:True
來自剩餘引數的值:False
propertyPSObjectLiteralPathSet
Position:Named
必要:True
來自管線的值:True
來自管線按屬性名稱的值:True
來自剩餘引數的值:False

-LiteralPath

指定項目屬性的路徑。 不同於 Path 參數,LiteralPath 的值會與輸入時完全相同。 不會將任何字元解譯為通配符。 如果路徑包含逸出字元,請以單引弧括住它。 單引號會告知PowerShell不要將任何字元解譯為逸出序列。

參數屬性

類型:

String[]

預設值:None
支援萬用字元:False
不要顯示:False
別名:PSPath

參數集

propertyValueLiteralPathSet
Position:Named
必要:True
來自管線的值:False
來自管線按屬性名稱的值:True
來自剩餘引數的值:False
propertyPSObjectLiteralPathSet
Position:Named
必要:True
來自管線的值:False
來自管線按屬性名稱的值:True
來自剩餘引數的值:False

-Name

指定屬性的名稱。

參數屬性

類型:String
預設值:None
支援萬用字元:False
不要顯示:False
別名:PSProperty

參數集

propertyValuePathSet
Position:1
必要:True
來自管線的值:False
來自管線按屬性名稱的值:True
來自剩餘引數的值:False
propertyValueLiteralPathSet
Position:1
必要:True
來自管線的值:False
來自管線按屬性名稱的值:True
來自剩餘引數的值:False

-PassThru

傳回物件,表示項目屬性。 根據預設,此 Cmdlet 不會產生任何輸出。

參數屬性

類型:SwitchParameter
預設值:None
支援萬用字元:False
不要顯示:False

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Path

指定要修改之屬性的項目路徑。

參數屬性

類型:

String[]

預設值:None
支援萬用字元:False
不要顯示:False

參數集

propertyValuePathSet
Position:0
必要:True
來自管線的值:False
來自管線按屬性名稱的值:True
來自剩餘引數的值:False
propertyPSObjectPathSet
Position:0
必要:True
來自管線的值:False
來自管線按屬性名稱的值:True
來自剩餘引數的值:False

-UseTransaction

在作用中交易中包含 命令。 只有在交易進行中時,此參數才有效。 如需詳細資訊,請參閱 about_Transactions

參數屬性

類型:SwitchParameter
預設值:False
支援萬用字元:False
不要顯示:False
別名:usetx

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Value

指定屬性的值。

參數屬性

類型:Object
預設值:None
支援萬用字元:False
不要顯示:False

參數集

propertyValuePathSet
Position:2
必要:True
來自管線的值:False
來自管線按屬性名稱的值:True
來自剩餘引數的值:False
propertyValueLiteralPathSet
Position:2
必要:True
來自管線的值:False
來自管線按屬性名稱的值:True
來自剩餘引數的值:False

-WhatIf

顯示 Cmdlet 執行時會發生什麼事。 指令未執行。

參數屬性

類型:SwitchParameter
預設值:False
支援萬用字元:False
不要顯示:False
別名:無線

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

CommonParameters

此 Cmdlet 支援一般參數:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 如需詳細資訊,請參閱 about_CommonParameters

輸入

PSObject

您可以將物件通過管線傳送至此 Cmdlet。

輸出

None, System.Management.Automation.PSCustomObject

如果您 指定 passThru 參數,此 Cmdlet 會產生 PSCustomObject 物件,代表已變更的專案及其新屬性值。 否則,此 Cmdlet 不會產生任何輸出。

備註

Set-ItemProperty 的設計目的是要處理任何提供者所公開的數據。 若要列出工作階段中可用的提供者,請輸入 Get-PSProvider。 如需詳細資訊,請參閱 about_Providers