在包含对象集合的属性值中添加和删除项。
语法
Update-List [-Add <Object[]>] [-Remove <Object[]>] [[-Property] <string>] [-InputObject <psobject>] [<CommonParameters>] Update-List -Replace <Object[]> [[-Property] <string>] [-InputObject <psobject>] [<CommonParameters>]
说明
Update-List cmdlet 在对象的属性值中添加和删除项,然后返回更新的对象。此 cmdlet 用于包含对象集合的属性。
Add 和 Remove 参数分别在集合中添加和删除各项。Replace 参数将替换整个集合。
如果不在命令中指定属性,Update-List 会返回描述更新的对象,而不是对该对象进行更新。您可以将更新对象提交给更改对象的 cmdlet,如 Set-* cmdlet。
仅当被更新的属性支持 Update-List 使用的 IList 接口时,此 cmdlet 才有效。此外,接受更新的任何 Set-* cmdlet 都必须支持 IList 接口。随 Windows PowerShell 一起安装的核心 cmdlet 不支持此接口。若要确定 cmdlet 是否支持 Update-List,请参阅该 cmdlet 的帮助主题。
参数
-Add <Object[]>
指定要添加到集合中的属性值。按照值应该在集合中出现的顺序输入值。
是否为必需? |
false |
位置? |
named |
默认值 |
|
是否接受管道输入? |
false |
是否接受通配符? |
false |
-InputObject <psobject>
指定要更新的对象。您也可以通过管道将要更新的对象传递给 Update-List。
是否为必需? |
false |
位置? |
named |
默认值 |
|
是否接受管道输入? |
true (ByValue) |
是否接受通配符? |
false |
-Property <string>
标识包含要更新的集合的属性。如果省略此参数,Update-List 会返回一个表示更改的对象,而不是更改该对象。
是否为必需? |
false |
位置? |
1 |
默认值 |
|
是否接受管道输入? |
false |
是否接受通配符? |
false |
-Remove <Object[]>
指定要从集合中删除的属性值。
是否为必需? |
false |
位置? |
named |
默认值 |
|
是否接受管道输入? |
false |
是否接受通配符? |
false |
-Replace <Object[]>
指定新集合。此参数会将原始集合中的所有项目替换为此参数指定的项目。
是否为必需? |
true |
位置? |
named |
默认值 |
无 |
是否接受管道输入? |
false |
是否接受通配符? |
false |
<CommonParameters>
此 cmdlet 支持通用参数:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。有关详细信息,请参阅 about_Commonparameters.
输入和输出
输入类型是指可通过管道传递给 cmdlet 的对象的类型。返回类型是指 Cmdlet 所返回对象的类型。
输入 |
System.Management.Automation.PSObject 可以通过管道将要更新的对象传递给 Update-List。 |
输出 |
Objects or System.Management.Automation.PSListModifier Update-List 返回更新的对象,或返回一个表示更新操作的对象。 |
示例 1
C:\PS>get-mailbox | update-list -Property aliases -Add "A","B" -Remove "X","Y" | set-mailbox 说明 ----------- 此命令在邮箱的 Aliases 属性中添加 A 和 B,删除 X 和 Y。 该命令使用 Get-MailBox cmdlet 从 Microsoft Exchange Server 获取邮箱。管道运算符会将邮箱对象发送到 Update-List cmdlet。 Update-List 命令使用 Property 参数指明要更新邮箱的 Aliases 属性,使用 Add 和 Remove 参数指定要在集合中添加和删除的项。Aliases 属性满足 Update-List 的条件,因为它存储具有 Add 和 Remove 方法的 Microsoft .NET Framework 对象的集合。 Update-List cmdlet 返回更新的邮箱,然后通过管道将其传递给 Set-MailBox cmdlet,由该 cmdlet 来更改邮箱。 有关 Get-Mailbox 的详细信息,请参阅 https://go.microsoft.com/fwlink/?LinkId=111536。
示例 2
C:\PS>$m = get-mailbox C:\PS> update-list -InputObject $m -Property aliases -Add "A","B" -Remove "X", "Y" | set-mailbox 说明 ----------- 此命令在邮箱的 Aliases 属性中添加 A 和 B,删除 X 和 Y。此命令与上一个命令的效果相同,尽管其格式略有不同。 此命令使用 Get-MailBox cmdlet 获取邮箱,并将邮箱保存在 $m 变量中。它使用 Update-List 的 InputObject 参数指定邮箱。InputObject 的值为 $m 变量中的邮箱。它使用 Property 参数指定 Aliases 属性,使用 Add 和 Remove 参数指定要在 Aliases 的值中添加和删除的项目。 该命令使用管道运算符 (|) 将更新的邮箱对象发送给 Set-Mailbox cmdlet,由该 cmdlet 来更改邮箱。
示例 3
C:\PS>get-mailbox | set-mailbox -alias (update-list -Add "A", "B" -Remove "X","Y") 说明 ----------- 此命令在邮箱的 Aliases 属性中添加 A 和 B,删除 X 和 Y。此命令与前两个命令的效果相同,但是它采用不同的过程来执行任务。 此命令不会在将邮箱发送到 Set-Mailbox 之前更新邮箱的 Aliases 属性,而是使用 Update-List 创建一个表示此项更改的对象。然后,它将更改提交给 Set-Mailbox 的 Alias 参数。 该命令使用 Get-MailBox cmdlet 来获取邮箱。管道运算符将邮箱对象发送给 Set-Mailbox cmdlet,由该 cmdlet 来更改邮箱。 该命令使用 Set-Mailbox 的 Alias 参数来更改邮箱对象的 Aliases 属性。Alias 参数的值是一个 Update-List 命令,该命令创建表示更新的对象。Update-List 命令括在圆括号内,以确保它在计算 Alias 参数的值之前运行。在 Set-Mailbox 命令完成后,邮箱即被更改。
示例 4
C:\PS>update-list -InputObject $a -Property aliases -replace "A", "B" | set-mailbox 说明 ----------- 此命令使用 Update-List 的 Replace 运算符将 $a 中对象的 Aliases 属性中的集合替换为新集合。 此命令使用 InputObject 参数,在此情况下等效于使用管道运算符将 $a 传递给 Update-List。
另请参阅