New-ItemProperty

建立項目的新屬性,並設定其值。

Syntax

New-ItemProperty
   [-Path] <String[]>
   [-Name] <String>
   [-PropertyType <String>]
   [-Value <Object>]
   [-Force]
   [-Filter <String>]
   [-Include <String[]>]
   [-Exclude <String[]>]
   [-Credential <PSCredential>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
New-ItemProperty
   -LiteralPath <String[]>
   [-Name] <String>
   [-PropertyType <String>]
   [-Value <Object>]
   [-Force]
   [-Filter <String>]
   [-Include <String[]>]
   [-Exclude <String[]>]
   [-Credential <PSCredential>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Description

Cmdlet New-ItemProperty 會為指定的專案建立新的屬性,並設定其值。 一般而言,這個 Cmdlet 是用來建立新的登錄值,因為登錄值是登錄機碼項目的屬性。

這個 Cmdlet 並不會將屬性新增到物件。

  • 若要將屬性新增至 物件的實例,請使用 Add-Member Cmdlet。
  • 若要將屬性新增至特定類型的所有物件,請修改 Types.ps1xml 檔案。

範例

範例 1:新增登錄專案

此命令會將新的登錄專案 NoOfEmployees 新增至 MyCompanyHKLM:\Software hive 機碼。

第一個命令會使用 Path 參數來指定登錄機碼的路徑 MyCompany 。 它會使用 Name 參數來指定專案的名稱,並使用 Value 參數來指定其值。

第二個命令會 Get-ItemProperty 使用 Cmdlet 來查看新的登錄專案。

New-ItemProperty -Path "HKLM:\Software\MyCompany" -Name "NoOfEmployees" -Value 822
Get-ItemProperty "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 : 822

範例 2:將登錄專案新增至機碼

這個命令會將新登錄項目新增到登錄機碼。 若要指定索引鍵,它會使用管線運算子 (|) 將代表索引鍵的物件傳送至 New-ItemProperty

命令的第一個部分會使用 Get-Item Cmdlet 來取得 MyCompany 登錄機碼。 管線運算子會將 命令的結果傳送至 New-ItemProperty ,這會將新的登錄專案 () NoOfLocations ,並將其值 (3) 新增至 MyCompany 機碼。

Get-Item -Path "HKLM:\Software\MyCompany" | New-ItemProperty -Name NoOfLocations -Value 3

此命令的運作方式,因為 PowerShell 的參數系結功能會將傳回的RegistryKey物件 Get-Item 路徑與 的 New-ItemPropertyLiteralPath參數產生關聯。 如需詳細資訊,請參閱 about_Pipelines

範例 3:使用 Here-String在登錄中建立 MultiString 值

此範例會使用 Here-String 建立 MultiString 值。

$newValue = New-ItemProperty -Path "HKLM:\SOFTWARE\ContosoCompany\" -Name 'HereString' -PropertyType MultiString -Value @"
This is text which contains newlines
It can also contain "quoted" strings
"@
$newValue.multistring

This is text which contains newlines
It can also contain "quoted" strings

範例 4:使用陣列在登錄中建立 MultiString 值

此範例示範如何使用值的陣列來建立 MultiString 值。

$newValue = New-ItemProperty -Path "HKLM:\SOFTWARE\ContosoCompany\" -Name 'MultiString' -PropertyType MultiString -Value ('a','b','c')
$newValue.multistring[0]

a

參數

-Confirm

在執行 Cmdlet 前提示您確認。

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

-Credential

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

輸入使用者名稱,例如 User01Domain01\User01 ,或輸入 PSCredential 物件,例如 Cmdlet 所產生的 Get-Credential 名稱。 若您輸入使用者名稱時,會提示您輸入密碼。

注意

任何隨 PowerShell 一起安裝的提供者都不支援此參數。 若要模擬其他使用者,或在執行此 Cmdlet 時提高您的認證,請使用 Invoke-Command

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

-Exclude

指定此 Cmdlet 在作業中排除的專案或專案,做為字串陣列。 此參數的值會限定 Path 參數。 輸入路徑元素或模式,例如 *.txt。 允許使用萬用字元。 Exclude 參數只有在 命令包含專案的內容時有效,例如 C:\Windows\* ,其中萬用字元會指定目錄的內容 C:\Windows

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

-Filter

指定篩選準則以限定 Path 參數。 FileSystem提供者是唯一支援使用篩選的已安裝 PowerShell 提供者。 您可以在about_Wildcards中找到FileSystem篩選語言的語法。 篩選比其他參數更有效率,因為提供者會在 Cmdlet 取得物件時套用它們,而不是在擷取物件之後讓 PowerShell 篩選物件。

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

-Force

強制 Cmdlet 在使用者無法存取的物件上建立屬性。 實作會依提供者而異。 如需詳細資訊,請參閱 about_Providers

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

-Include

以字串陣列指定此 Cmdlet 在作業中納入的項目。 此參數的值會限定 Path 參數。 輸入路徑元素或模式,例如 *.txt。 允許使用萬用字元。 Include參數只有在命令包含專案的內容時有效,例如 C:\Windows\* ,其中萬用字元會指定目錄的內容 C:\Windows

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

-LiteralPath

指定一個或多個位置的路徑。 LiteralPath的值會完全依照其類型使用。 沒有字元會被視為萬用字元。 如果路徑包含逸出字元,請將它括在單引號 (') 。 單引號會告訴 PowerShell 不要將任何字元解譯為逸出序列。

如需詳細資訊,請參閱 about_Quoting_Rules

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

-Name

指定新屬性的名稱。 如果屬性是登錄項目,這個參數便會指定該項目的名稱。

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

-Path

指定專案的路徑。 允許使用萬用字元。 此參數會識別這個 Cmdlet 加入新屬性的專案。

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

-PropertyType

指定這個 Cmdlet 新增的屬性類型。 此參數可接受的值為:

  • String:指定以 Null 結尾的字串。 用於 REG_SZ 值。
  • ExpandString:指定以 Null 結尾的字串,其中包含擷取值時展開之環境變數的未展開參考。 用於 REG_EXPAND_SZ 值。
  • Binary:以任何形式指定二進位資料。 用於 REG_BINARY 值。
  • DWord:指定 32 位二進位數。 用於 REG_DWORD 值。
  • MultiString:指定以兩個 Null 字元結尾的 Null 終止字串陣列。 用於 REG_MULTI_SZ 值。
  • Qword:指定 64 位二進位數。 用於 REG_QWORD 值。
  • Unknown:表示不支援的登錄資料類型,例如 REG_RESOURCE_LIST 值。
Type:String
Aliases:Type
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Value

指定屬性值。 如果屬性是登錄項目,這個參數便會指定該項目的值。

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

-WhatIf

顯示執行 Cmdlet 後會發生的情況。 Cmdlet 並不會執行。

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

輸入

None

您無法使用管線傳送輸入至此 Cmdlet。

輸出

PSCustomObject

New-ItemProperty 會傳回包含新屬性的自訂物件。

備註

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