變更或建立項目的屬性值。
語法
Set-ItemProperty [-LiteralPath] <string[]> -InputObject <psobject> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>] Set-ItemProperty [-Path] <string[]> -InputObject <psobject> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>] Set-ItemProperty [-LiteralPath] <string[]> [-Name] <string> [-Value] <Object> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>] Set-ItemProperty [-Path] <string[]> [-Name] <string> [-Value] <Object> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]
描述
Set-ItemProperty Cmdlet 變更指定之項目的屬性值。您可以使用 Cmdlet 建立或變更項目的屬性。例如,您可以使用 Set-ItemProperty 將檔案物件之 IsReadOnly 屬性的值設為 true。
您也可以使用 Set-ItemProperty 建立並變更登錄值與資料。例如,您可以將新登錄項目新增到機碼並且建立或變更登錄項目的值。
參數
-Credential <PSCredential>
指定具有執行此動作之權限的使用者帳戶。預設為目前使用者。
請輸入使用者名稱,例如 "User01" 或 "Domain01\User01",或是輸入 PSCredential 物件,例如由 Get-Credential Cmdlet 所產生的物件。如果輸入使用者名稱,將會提示您提供密碼。
所有隨 Windows PowerShell 安裝的提供者都不支援此參數。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
true (ByPropertyName) |
接受萬用字元? |
false |
-Exclude <string[]>
指定此 Cmdlet 將不對其執行的項目,除此之外包含其餘所有項目。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-Filter <string>
指定以提供者的格式或語言表示的篩選器。此參數的值用於限定 Path 參數。篩選器的語法 (包括萬用字元的用法) 依提供者而定。篩選器比其他參數更有效率,因為提供者會在擷取物件時套用篩選器,而非等到 Windows PowerShell 擷取物件後才進行篩選。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-Force
允許此 Cmdlet 在使用者無法以其他方式存取的項目上設定屬性。實作因提供者而異。如需詳細資訊,請參閱 about_Providers。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-Include <string[]>
指定僅限 Cmdlet 將對其執行的項目,排除其餘所有項目。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-InputObject <psobject>
指定具有您想要變更之屬性的物件。請輸入包含物件的變數,或是可取得物件的命令。
必要? |
true |
位置? |
named |
預設值 |
|
接受管線輸入? |
true (ByValue, ByPropertyName) |
接受萬用字元? |
false |
-LiteralPath <string[]>
指定項目屬性的路徑。LiteralPath 係取用實際輸入的內容做為參數值。任何字元均不被解譯成萬用字元。如果路徑中包含逸出字元,請將其置於單引號內。單引號係告訴 Windows PowerShell 不要將任何字元解譯成逸出序列。
必要? |
true |
位置? |
1 |
預設值 |
|
接受管線輸入? |
true (ByPropertyName) |
接受萬用字元? |
false |
-Name <string>
指定屬性的名稱。
必要? |
true |
位置? |
2 |
預設值 |
|
接受管線輸入? |
true (ByPropertyName) |
接受萬用字元? |
false |
-PassThru
傳回代表項目屬性的物件。根據預設,此 Cmdlet 不會產生任何輸出。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-Path <string[]>
指定要設定其屬性的項目所在路徑。
必要? |
true |
位置? |
1 |
預設值 |
|
接受管線輸入? |
true (ByPropertyName) |
接受萬用字元? |
false |
-Value <Object>
指定屬性的值。
必要? |
true |
位置? |
3 |
預設值 |
|
接受管線輸入? |
true (ByPropertyName) |
接受萬用字元? |
false |
-Confirm
在執行命令前先提示確認。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-WhatIf
說明執行命令時將會發生何種情況,但不會實際執行命令。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
-UseTransaction
將命令加入現用交易中。此參數只有當交易進行中時才有效。如需詳細資訊,請參閱 about_Transactions。
必要? |
false |
位置? |
named |
預設值 |
|
接受管線輸入? |
false |
接受萬用字元? |
false |
<CommonParameters>
這個 Cmdlet 支援一般參數:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。如需詳細資訊,請參閱 about_Commonparameters.
輸入和輸出
輸入型別是可經由管道輸出至 Cmdlet 的物件型別。傳回型別則是 Cmdlet 所傳回的物件型別。
輸入 |
System.Management.Automation.PSObject 您可經由管道將物件輸出至 Set-ItemProperty。 |
輸出 |
None 或 System.Management.Automation.PSCustomObject 如果您使用 PassThru 參數,Set-ItemProperty 會產生代表已變更之項目及新項目屬性值的 PSCustomObject 物件。否則,這個 Cmdlet 不會產生任何輸出。 |
附註
Set-ItemProperty Cmdlet 設計的用意是要操作任一提供者所公開的資料。若要列出可在工作階段中使用的提供者,請輸入 "Get-PSProvider"。如需詳細資訊,請參閱 about_Providers。
範例 1
C:\PS>set-itemproperty -path c:\GroupFiles\final.doc -name IsReadOnly -value $true 描述 ----------- 這個命令會將 final.doc 檔案的 IsReadOnly 屬性值設為 true。 這個命令使用 Set-ItemProperty Cmdlet 變更 final.doc 檔案的屬性值。它使用 Path 參數指定檔案。該命令使用 Name 參數指定屬性的名稱,並且使用 Value 參數指定新值。 $true 自動變數代表 NULL 值。如需詳細資訊,請參閱 about_Automatic_Variables。 檔案是一個 System.IO.FileInfo 物件,而 IsReadOnly 只是其中一個屬性。若要查看 FileInfo 物件的所有屬性與方法,請透過管線將檔案傳遞給 Get-Member Cmdlet,例如 "final.doc | get-member"。
範例 2
C:\PS>set-itemproperty -path HKLM:\Software\MyCompany -name NoOfEmployees -value 823 C:\PS>get-itemproperty -path HKLM:\Software\MyCompany PSPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\software\mycompany PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\software PSChildName : mycompany PSDrive : HKLM PSProvider : Microsoft.PowerShell.Core\Registry NoOfLocations : 2 NoOfEmployees : 823 C:\PS>set-itemproperty -path HKLM:\Software\MyCompany -name NoOfEmployees -value 824 C:\PS>get-itemproperty -path HKLM:\Software\MyCompany PSPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\software\mycompany PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\software PSChildName : mycompany PSDrive : HKLM PSProvider : Microsoft.PowerShell.Core\Registry NoOfLocations : 2 NoOfEmployees : 824 描述 ----------- 這個範例示範如何使用 Set-ItemProperty 建立新登錄項目,並為此項目指派值。範例會在 HKLM\Software 機碼中建立 MyCompany 機碼的 NoOfEmployees 項目,並且將值設為 823。 因為登錄項目被視為登錄機碼 (即項目 (Item)) 的屬性,所以您要使用 Set-ItemProperty 建立登錄項目 (Entry) 並建立與變更項目的值。 第一個命令使用 Set-ItemProperty Cmdlet 建立登錄項目。該命令使用 Path 參數指定 HKLM: 的路徑與 Software\MyCompany 機碼。該命令使用 Name 參數指定項目名稱,並且使用 Value 參數指定項目的值。 第二個命令使用 Get-ItemProperty Cmdlet 檢視新登錄項目。如果您使用 Get-Item 或 Get-ChildItem Cmdlet,因為這些項目 (Entry) 屬於機碼的屬性,而非項目 (Item) 或子項目,所以不會顯示這些項目 (Entry)。 第三個命令會將 NoOfEmployees 項目的值為 824。 您也可以使用 New-ItemProperty Cmdlet 建立登錄項目與值,然後使用 Set-ItemProperty 變更值。 如需 HKLM: 磁碟機的詳細資訊,請輸入 "get-help get-psdrive"。如需使用 Windows PowerShell 管理登錄的詳細資訊,請輸入 "get-help registry"。
範例 3
C:\PS>get-childitem weekly.txt | set-itemproperty -name IsReadOnly -value $true 描述 ----------- 這些命令示範如何使用管線運算子 (|) 將項目傳送到 Set-ItemProperty。 命令的第一個部分使用 Get-ChildItem Cmdlet 取得表示 Weekly.txt 檔案的物件。該命令使用管線運算子將檔案物件傳送給 Set-ItemProperty。Set-ItemProperty 命令使用 Name 與 Value 參數指定屬性與新值。 這個命令與使用 InputObject 參數指定 Get-ChildItem 取得的物件相同。
請參閱