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。 |
輸出 |
物件或 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。
此命令會使用 Microsoft Exchange Server 的 Get-MailBox Cmdlet 來取得信箱。管線運算子會將信箱物件傳送給 Update-List Cmdlet。
Update-List 命令會使用 Property 參數來表示信箱的 Aliases 屬性正在進行更新,以及使用 Add 和 Remove 參數來指定正在集合中新增及移除的項目。Aliases 屬性符合 Update-List 的條件,因為其儲存的 Microsoft .NET Framework 物件集合具有 Add 和 Remove 方法。
Update-List Cmdlet 會傳回已更新的信箱,然後這個信箱會經由管道輸出至 Set-MailBox 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
描述
-----------
這個命令會將 A 和 B 新增到信箱的 Aliases 屬性值,並移除 X 與 Y。這個命令具有與前一個命令同等的效果,但有些許不同。
這個命令會使用 Get-MailBox Cmdlet 取得信箱,然後將信箱儲存到 $m 變數。它也會使用 Update-List 的 InputObject 參數指定信箱。InputObject 的值為 $m 變數中的信箱。這個命令會使用 Property 參數指定 Aliases 屬性,以及使用 Add 和 Remove 參數指定正在從 Aliases 的值中新增及移除的項目。
它也會使用管線運算子 (|) 將已更新的信箱物件傳送給 Set-Mailbox Cmdlet,讓後者變更信箱。
範例 3
C:\PS>get-mailbox | set-mailbox -alias (update-list -Add "A", "B" -Remove "X","Y")
描述
-----------
這個命令會將 A 和 B 新增到信箱的 Aliases 屬性值,並移除 X 與 Y。這個命令具有與前兩個命令同等的效果,但是使用不同的程序執行工作。
相對於在更新信箱的 Aliases 屬性後再將信箱傳送給 Set-Mailbox,這個命令會使用 Update-List 建立代表變更的物件,然後將變更送出給 Set-Mailbox 的 Alias 參數。
該命令會使用 Get-MailBox Cmdlet 取得信箱。管線運算子 (|) 會將信箱物件傳送給 Set-Mailbox 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。