Exchange コマンドレットの構文

Exchange コマンドレットのリファレンス記事では、コマンドレットに関する重要な側面を説明する標準化された方法を使用しています。 例:

  • コマンドレットで使用可能なパラメーター。
  • 各パラメーターが受け付ける値。
  • 一緒に使用できるパラメーターと、別々に使用する必要があるパラメーター。

この記事では、これらの規則、および Exchange PowerShell でコマンドを実行するために必要な構文について説明します。

Exchange PowerShell のコマンドの規則

Exchange PowerShell ヘルプは、規則に従って必須またはオプションの情報、およびコマンドの実行時にパラメーターと値を入力する方法を示します。 これらのコマンド規則を次の一覧に示します。

  • -: ハイフンはパラメーターを示します。 たとえば、「 -Identity 」のように入力します。
  • < >: 山かっこは、パラメーターに指定できる値を示します。 たとえば、-Location <ServerName> および -Enabled <$true | $false> が禁止となります。
  • [ ]: 角かっこは省略可能なパラメーターとその値を示します。 たとえば、[-WhatIf] および [-ResultSize <Unlimited>] が禁止となります。
    • 角かっこで囲まれていないパラメーターと値のペアは必須です。 たとえば、「 -Password <SecureString> 」のように入力します。
    • パラメーター名自体を囲む角かっこは、パラメーター名を指定せずにパラメーター値を使用できる 位置 パラメーターを示しています。 位置パラメータは必須またはオプションです。 例:
      • Get-Mailbox [[-Identity] <MailboxIdParameter>] は、 Identity パラメーターが次のことを意味します。
        • パラメーターが角かっこで囲まれているため、位置があります。
        • パラメーターと値のペア全体が角かっこで囲まれているため、省略可能です。
        • そのため、 Get-Mailbox -Identity <MailboxIdParameter> または Get-Mailbox <MailboxIdParameter> を使用できます。
      • Set-Mailbox [-Identity] <MailboxIdParameter> は、 Identity パラメーターが次のことを意味します。
        • パラメーターが角かっこで囲まれているため、位置があります。
        • パラメーターと値のペア全体が角かっこで囲まれていないため必須です。
        • そのため、 Set-Mailbox -Identity <MailboxIdParameter> または Set-Mailbox <MailboxIdParameter> を使用できます。
  • |: パラメーター値のパイプ記号は、値の選択を示します。 たとえば、 -Enabled <$true | $false> は、 Enabled パラメーターの値に $true または $false を含めることができることを示します。

これらのコマンドの規則によって、コマンドの構成が理解しやすくなります。 パラメーターを示すハイフンを除き、これらの記号は、Exchange PowerShell でコマンドレットを実行するときの表に記載されているように使用しません。

Exchange PowerShell のパラメーター セット

パラメーター セットとは、同じコマンドで相互に使用することができるパラメーターのグループです。 各パラメーター セットには、他のパラメーター セットでは使用できないパラメーターが少なくとも 1 つ含まれていますが、パラメーター セットは通常、いくつかのパラメーターを共有します。

多くのコマンドレットではパラメーターが 1 つしか設定されていません。つまり、すべてのパラメーターを相互に使用できます。 他のコマンドレットにはいくつかのパラメーター セットがあります。つまり、一部のパラメーターを他のパラメーターと一緒に使用することはできません。 たとえば、次のパラメーター セットが New-SystemMessage コマンドレット上で使用できるとします。

New-SystemMessage -DsnCode <EnhancedStatusCode> -Internal <Boolean> -Language <CultureInfo> -Text <String> [-Confirm] [-DomainController <Fqdn>] [-WhatIf] <CommonParameters>

New-SystemMessage -QuotaMessageType <QuotaMessageType> -Language <CultureInfo> -Text <String> [-Confirm] [-DomainController <Fqdn>] [-WhatIf] <CommonParameters>

次のパラメーターは最初のパラメーター セットで使用可能なので、同じコマンドで使用できます。

  • DsnCode
  • 内部
  • Language
  • テキスト
  • 確認
  • DomainController
  • WhatIf

次のパラメータは 2 番目のパラメータ セットで使用可能なので、同じコマンドで使用できます。

  • QuotaMessageType
  • Language
  • テキスト
  • 確認
  • DomainController
  • WhatIf

パラメーター DsnCodeInternal は、最初のパラメーター セットでのみ使用できます。 パラメーター QuotaMessageType は、2 番目のパラメーター セットでのみ使用できます。 したがって、同じコマンドで次のパラメーターを使用することはできません。

  • DsnCode および QuotaMessageType
  • InternalQuotaMessageType

次のパラメータは両方のパラメータ セットで使用可能なので、 任意の New-SystemMessage コマンドで使用できます。

  • Language
  • テキスト
  • 確認
  • DomainController
  • WhatIf

<CommonParameters> エントリは、コマンドレットが事実上すべてのコマンドレット (Verbose など) で使用できる基本的なWindows PowerShell パラメータをサポートしていることを示します。 任意のパラメーター セットからのパラメーターで共通のパラメーターを使用できます。 詳細については、「about_CommonParameters」を参照してください。

Exchange PowerShell における引用符

Exchange PowerShell では、スペースを含むパラメーター値を囲むために単一引用符 ( ' ) または二重引用符 ( " ) を使用します。 たとえば、次のコマンドは同様に動作します。

  • Get-ReceiveConnector -Identity "Contoso Receive Connector"

  • Get-ReceiveConnector -Identity 'Contoso Receive Connector'

前の例で値を一重引用符または二重引用符で囲まないと、PowerShell は各単語を新しい引数として扱うため、コマンドは失敗します ( ContosoIdentity パラメーターの値、 Receive は指定されていない位置パラメーターの値と考えます)。 この例では、エラーは次のようになります。

引数 'Receive' を受け入れる位置パラメーターが見つかりません

プレーン テキスト値の場合、単一引用符と二重引用符は実際には関係ありません。 ただし、変数が関係する場合は、選択が重要です。

  • 二重引用符: 変数は実際の値に置換されます。
  • 単一引用符: 変数は文字通りに扱われます。

たとえば、 $Server = Mailbox01 は、使用する引用符に基づいて次のような出力になります。

  • "$Server例" の結果は Mailbox01 Exampleになります。
  • '$Server Example'$Server Example という結果になります。

変数の詳細については、「 about_Variablesabout_Automatic_Variables」を参照してください。

Exchange PowerShell のエスケープ文字

どのプログラム言語でも、 エスケープ文字 は特殊文字をその言語の通常の関数ではなく文字を文字通り識別するために使用されます。 Exchange PowerShell では、テキスト文字列を二重引用符で囲む場合、エスケープ文字は後二重引用符エスケープ文字 (') になります。

たとえば、出力 The price is $23する場合は、 "The price is '$23"" の値を入力します。 $ は PowerShell の変数を定義するため、ドル記号文字 ($) にはエスケープ文字が必要です。

文字列を単一引用符で囲む場合、特殊文字は単一引用符文字自体だけであり、エスケープには 2 つの単一引用符 ( '' ) が必要です。

たとえば、出力を Don't confuse two single quotation marks with a double quotation mark!する場合は、 '2 つの一重引用符と二重引用符を混同しないでください' という値を入力します。

Exchange PowerShell のコマンド演算子

次の一覧は、Exchange コマンドで使用できる有効な演算子を示しています。 これらの記号のいくつかは、前の Exchange PowerShell のコマンドの規則 セクションでも説明されています。 ただし、これらの記号は演算子として使用すると異なる意味を持ちます。 たとえば、パラメーターを示す負符号は、算術演算子としても使用できます。

  • =: 等号は代入文字です。 等号の右側の値は左側の変数に割り当てられます。 たとえば、「 $x = Get-Mailbox 」のように入力します。 その他の文字に等号を付けて使用することもできます。

    • +=: 等号の右側にある値を、左側の変数の現在の値に加算します。
    • -=: 左側の変数の電流から等号の右側の値を減算します。
    • *=: 等号の左側にある変数の現在の値に、右側の指定された値を掛けます。
    • /=: 等号の左側にある変数の現在の値を右側の指定された値で除算します。
    • %=: 等号の左側にある変数の現在の値を、右側に指定された値で変更します。
  • :: コロンを使用して、パラメーター名とパラメーター値を区切ります。 たとえば、「 -Enabled:$True 」のように入力します。

    • コロン区切り記号は機能し、事実上すべてのパラメーターと値のペアでオプションです。
    • スイッチ パラメーターにはコロン区切り記号が必要です。 スイッチ パラメーターの詳細については、「 about_Parameters」を参照してください。
  • !: 感嘆符は論理 NOT 演算子です。 組み合わせたペア != は「等しくない」という意味です。

  • [ ]: 角かっこは、配列位置のインデックス値を指定します。 インデックス値は、常にゼロから始まるオフセットです。 たとえば、 $Red という配列では、配列の 10 番目の位置の値は $Red[9] です。

    角かっこでは、変数に型を割り当てることもできます。 たとえば、 $A という名前の変数を XML として識別するには、 $A=[XML] "<Test><A>value</A></Test>" を使用します。 使用可能な変数の種類は、 ArrayBoolByteCharChar[]DecimalDoubleFloatIntInt[]LongLong[]RegExSingleScriptBlockStringTypeXML.

  • { }: 中かっこを使用して、コマンドに式を含めます。 たとえば、「 Get-Process | Where {$_.HandleCount -gt 400} 」のように入力します。

  • |: パイプ記号を使用して、あるコマンドの出力を別のコマンドにパイプします。 たとえば、「 Get-Mailbox -Server SRV1 | Set-Mailbox -ProhibitSendQuota 2GB 」のように入力します。

  • >: コマンドの出力をファイルに送信するには、右山かっこを使用します。 ファイルが既に存在する場合は、内容が上書きされます。 たとえば、「 Get-TransportRule > "C:\My Documents\TransportRules.txt" 」のように入力します。

  • >>: コマンドの出力を既存のファイルに追加するには、二重右山かっこを使用します。 ファイルが存在しない場合は、新規にファイルが作成されます。 たとえば、「 Get-TransportRule >> "C:\My Documents\TransportRules.txt" 」のように入力します。

  • ": スペースを含むテキスト文字列を囲むには、二重引用符を使用します。 前述のように、変数は実際の値に置き換えられます。

  • $: ドル記号は変数を示します。 たとえば、値が 10 の $Blue という名前の変数を作成するには、 $Blue = 10 を使用します。 変数を格納した後、パラメータ値として使用できます。

  • @: at 記号は連想配列を参照します。 詳細については、「 about_Arrays」を参照してください。

  • $( ): かっこ付きのドル記号は、コマンドの置換を示します。 あるコマンドの出力を他のコマンドの引数として使用する場合にコマンド置換を使用することができます。 たとえば、「 Get-ChildItem $(Read-Host -Prompt "Enter FileName: ") 」のように入力します。

  • ..: 二重ピリオドは値の範囲を示します。 たとえば、配列に複数のインデックスが含まれている場合、コマンド $Blue[2..5] を実行することで、2 番目から 5 番目のインデックスまでのすべてのインデックスの値を返すことができます。

  • +: プラス記号演算子で 2 つの値を加算します。 たとえば、 6 + 612 と等しくなります。

  • -: 負符号演算子は、ある値を別の値から減算するか (たとえば、 12 - 66 に等しい)、または負の数を示します (たとえば、 -6 * 6-36 に等しい)。

  • *: アスタリスクは次のタスクに使用できます。

    • 一致文字列: たとえば、 Get-User | Where-Object {$_.Department -like 'Sales*'})
    • 数値を乗算する: たとえば、 6 * 636 と等しくなります。
    • 指定した回数だけ文字列値を繰り返す: たとえば、 "Test" * 3TestTestTest になります。
  • /: スラッシュは 1 つの値を別の値で除算します。 たとえば、 6 / 61 と等しくなります。

  • %: パーセント記号には次の用途があります。

    • 数値評価では、除算演算子から余りを返します。 たとえば、 6 % 42 と等しくなります。
    • パイプラインでは、ForEach-Object コマンドレットの省略形です。 たとえば、 Import-Csv C:\MyFile.csv | ForEach-Object {Set-Mailbox $_.Identity -Name $_.Name} is the same as Import-Csv C:\MyFile.csv | % {Set-Mailbox $_.Identity -Name $_.Name} と同じです。
    • ?: 疑問符は、 Where-Object コマンドレットの省略表現です。 たとえば、 Get-Alias | Where-Object {$_.Definition -eq "Clear-Host"}Get-Alias | ? {$_.Definition -eq "Clear-Host"} と同じです。|