複数値プロパティを変更する
製品: Exchange Server 2013
複数値プロパティとは、複数の値を含むことのできるプロパティです。 たとえば、 RecipientFilterConfig オブジェクトの BlockedRecipients プロパティには、次の例のように複数の受信者のアドレスを使用することができます。
- john@contoso.com
- kim@northwindtraders.com
- david@adatum.com
BlockedRecipients プロパティには、複数の値を使用することができるため、複数値プロパティと呼ばれています。 ここでは、Exchange 管理シェルを使用して、オブジェクトの複数値プロパティに値を追加したり削除したりする方法について説明します。
オブジェクトの詳細については、「 構造化データ」を参照してください。 シェルの詳細については、「 Exchange 2013 での PowerShell の使用 (Exchange 管理シェル)」を参照してください。
複数値プロパティの変更および単一の値のみを使用するプロパティの変更
複数値プロパティの変更方法は、単一の値しか使用できないプロパティの変更方法とは少し異なります。 単一の値しか使用できないプロパティを変更する場合は、次のコマンドのように直接値を割り当てることができます。
Set-TransportConfig -MaxSendSize 12MB
このコマンドを使用して MaxSendSize プロパティに新しい値を指定すると、格納された値が上書きされます。 これは、1 つの値のみを受け入れるプロパティでは問題ありません。 ただし、複数値プロパティの問題になります。 たとえば、RecipientFilterConfig オブジェクトの BlockedRecipients プロパティが、前のセクションに記載されている 3 つの値を持つよう構成されているとします。 コマンド Get-RecipientFilterConfig | Format-List BlockedRecipients
を実行すると、次の情報が表示されます。
BlockedRecipients : {david@adatum.com, kim@northwindtraders.com, john@contoso.com}
ここで、ブロックされた受信者の一覧に新しい SMTP アドレスを追加する要求を受信したと仮定します。 次のコマンドを実行して、新しい SMTP アドレスを追加します。
Set-RecipientFilterConfig -BlockedRecipients chris@contoso.com
コマンドをもう Get-RecipientFilterConfig | Format-List BlockedRecipients
一度実行すると、次の情報が表示されます。
BlockedRecipients : {chris@contoso.com}
これは期待した内容ではありません。 ブロックされた受信者の既存の一覧に新しい SMTP アドレスを追加しようとしたにもかかわらず、ブロックされた受信者の既存の一覧が新しい SMTP アドレスで上書きされています。 この意図しない結果は、複数値プロパティの変更方法と、単一の値しか使用できないプロパティの変更方法とが異なることを例示しています。 複数値プロパティを変更する場合は、値の一覧全体を上書きするのではなく、値を追加または削除することを確認する必要があります。 次のセクションでは、この正確な方法を示します。
複数値のプロパティを変更する方法
複数値プロパティの変更は、単一値プロパティの変更に似ています。 プロパティに保存された値をすべて置き換えるのではなく、複数値プロパティに対して値を追加または削除するようにシェルに指示する構文をいくつか追加するだけで済みます。 コマンドレットを実行する際、プロパティに対して追加または削除する値とともに構文がパラメーター値として含まれます。 次の表は、複数値プロパティを変更するために、コマンドレットのパラメーターに追加する必要のある構文を示しています。
複数値プロパティの構文
アクション | 構文 |
---|---|
1 つ以上の値を複数値プロパティに追加します。 | @{Add="<value1>", "<value2>", "<value3>"} |
1 つ以上の値を複数値プロパティから削除します。 | @{Remove="<value1>", "<value2>", "<value3>"} |
複数値プロパティ構文テーブルから選択する構文は、コマンドレットのパラメーター値として指定されます。 たとえば、次のコマンドは複数の値を複数値プロパティに追加します。
Set-ExampleCmdlet -Parameter @{Add="Red", "Blue", "Green"}
この構文を使用すると、指定した値がすでにプロパティに存在する値のリストに対して追加または削除されます。 このトピックの前の BlockedRecipients の例を取ると、次のコマンドを使用して、このプロパティの残りの値を上書きせずに追加 chris@contoso.com できるようになりました。
Set-RecipientFilterConfig -BlockedRecipients @{Add="chris@contoso.com"}
値の一覧から削除 david@adatum.com する場合は、次のコマンドを使用します。
Set-RecipientFilterConfig -BlockedRecipients @{Remove="david@adatum.com"}
プロパティに対して同時に値を追加したり削除したりするような、より複雑な組み合わせも使用できます。 これを行うには、アクションと Remove
アクションの間Add
にセミコロン (;
) を挿入します。 以下に例を示します。
Set-RecipientFilterConfig -BlockedRecipients @{Add="carter@contoso.com", "sam@northwindtraders.com", "brian@adatum.com"; Remove="john@contoso.com"}
コマンドをもう Get-RecipientFilterConfig | Format-List BlockedRecipients
一度使用すると、John のアドレスが削除されている間に、Carter、Sam、Brian のメール アドレスが追加されていることがわかります。
BlockedRecipients : {brian@adatum.com, sam@northwindtraders.com, carter@contoso.com, chris@contoso.com, kim@northwindtraders.com}