Update-List

在包含对象集合的属性值中添加和删除项。

语法

Update-List
      [-Add <Object[]>]
      [-Remove <Object[]>]
      [-InputObject <PSObject>]
      [[-Property] <String>]
      [<CommonParameters>]
Update-List
      -Replace <Object[]>
      [-InputObject <PSObject>]
      [[-Property] <String>]
      [<CommonParameters>]

说明

Update-List cmdlet 向 对象的属性值添加项并从中删除项,然后返回更新的对象。 此 cmdlet 旨在用于包含对象集合的属性。

“添加”和“删除”参数将各个项添加到集合中,并从集合中删除它们。 Replace 参数替换整个集合。

如果未在命令中指定属性, Update-List 将返回描述更新的对象,而不是更新对象。 你可以将更新对象提交给更改对象的 cmdlet,例如 Set-* cmdlet。

仅当正在更新的属性支持 Update-List 使用的 IList 接口时,此 cmdlet 才有效。 此外,接受更新的任何 Set-* cmdlet 都必须支持 IList 接口。 随 Windows PowerShell 一起安装的核心 cmdlet 不支持此接口。 若要确定 cmdlet 是否支持 Update-List,请参阅 cmdlet 帮助主题。

示例

示例 1:在属性值中添加和删除项

PS C:\> Get-MailBox | Update-List -Property aliases -Add "A","B" -Remove "X","Y" | Set-MailBox

此命令在邮箱的 Aliases 属性中添加 A 和 B 并删除 X 和 Y。

命令使用 Microsoft Exchange Server 中的 Get-Mailbox cmdlet 来获取邮箱。 管道操作员将邮箱对象发送到 Update-List cmdlet。

Update-List 命令使用 Property 参数指示正在更新邮箱的 Aliases 属性,并使用 AddRemove 参数指定要从集合中添加和删除的项目。 Aliases 属性满足 Update-List 的条件,因为它存储具有 Add 和 Remove 方法的 Microsoft .NET Framework 对象的集合。

Update-List cmdlet 返回更新的邮箱,该邮箱通过管道传递给 Set-MailBox cmdlet,后者将更改邮箱。

示例 2:在变量的属性值中添加和删除项

PS C:\> $M = Get-MailBox
PS C:\> Update-List -InputObject $M -Property aliases -Add "A","B" -Remove "X", "Y" | Set-MailBox

此命令在邮箱的 Aliases 属性中添加 A 和 B 并删除 X 和 Y。此命令与上一个命令的效果相同,尽管其格式略有不同。

命令使用 Get-MailBox cmdlet 获取邮箱,并将邮箱保存在 $M 变量中。 此命令使用 Update-ListInputObject 参数指定邮箱。 InputObject 的值是 $M 变量中的邮箱。 它使用 Property 参数指定 Aliases 属性和 AddRemove 参数来指定要添加到 Aliases 值和从值中删除的项。

命令使用管道运算符 (|) 将更新的邮箱对象发送到 Set-Mailbox cmdlet,这会更改邮箱。

示例 3:在属性值中添加和删除项

PS C:\> Get-MailBox | Set-MailBox -Alias (Update-List -Add "A", "B" -Remove "X","Y")

此命令在邮箱的 Aliases 属性中添加 A 和 B 并删除 X 和 Y。此命令与前两个命令的效果相同,但是它采用不同的过程来执行任务。

此命令使用 Update-List 创建表示更改的对象,而不是在将邮箱发送到 Set-Mailbox 之前更新邮箱的 Aliases 属性。 然后,它将更改提交到 Set-MailboxAlias 参数。

命令使用 Get-MailBox cmdlet 获取邮箱。 管道操作员将邮箱对象发送到 Set-Mailbox cmdlet,这会更改邮箱。

该命令使用 Set-MailboxAlias 参数更改邮箱对象的 Aliases 属性。 Alias 参数的值是一个 Update-List 命令,用于创建表示更新的对象。 Update-List 命令括在括号中,以确保它在计算 Alias 参数的值之前运行。 Set-Mailbox 命令完成后,邮箱将更改。

示例 4:替换属性集合

PS C:\> Update-List -InputObject $A -Property aliases -Replace "A", "B" | Set-MailBox

此命令使用 Update-List 的 Replace 运算符将 $A 中 对象的 Aliases 属性中的集合替换为新的集合。

此命令使用 InputObject 参数,在本例中,此参数等效于使用管道运算符将$A传递给 Update-List

参数

-Add

指定要添加到集合中的属性值。 按照值应该在集合中出现的顺序输入值。

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

-InputObject

指定要更新的对象。 还可以通过管道将对象更新到 Update-List

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

-Property

指定包含正在更新的集合的属性。 如果省略此参数, Update-List 将返回表示更改的对象,而不是更改对象。

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

-Remove

指定要从集合中删除的属性值。

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

-Replace

指定新集合。 此参数会将原始集合中的所有项替换为由此参数指定的项。

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

输入

PSObject

可以通过管道将要更新的对象传递给 Update-List

输出

Objects or System.Management.Automation.PSListModifier

Update-List 返回更新的对象,或返回表示更新操作的对象。