创建或更改某一项的属性值。
语法
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 输入的一个 PSCredential 对象。如果键入用户名,则将提示您输入密码。
随同 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 自动变量表示值 TRUE。有关详细信息,请参阅 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。 因为注册表条目被视为是注册表项(项目)的属性,所以应使用 Set-ItemProperty 来创建注册表条目以及设定和更改它们的值。 第一条命令使用 Set-ItemProperty cmdlet 创建该注册表条目。它使用 Path 参数指定 HKLM: 驱动器和 Software\MyCompany 项的路径,使用 Name 参数指定该条目的名称,使用 Value 参数指定该条目的值。 第二条命令使用 Get-ItemProperty cmdlet 查看新的注册表条目。如果使用 Get-Item 或 Get-ChildItem cmdlet,则不会出现注册表条目,因为它们是项属性,而不是项或子项。 第三条命令将 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 所获取的对象是等效的。
另请参阅