Update-List

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

语法

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 或 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。





另请参阅

概念

Select-Object