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
パラメーター DsnCode と Internal は、最初のパラメーター セットでのみ使用できます。 パラメーター QuotaMessageType は、2 番目のパラメーター セットでのみ使用できます。 そのため、同じコマンドで次のパラメーターを使用することはできません。
- DsnCode および QuotaMessageType。
- Internal と QuotaMessageType。
次のパラメーターは両方のパラメーター セットで使用できるため、 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 は各単語を新しい引数として扱うため、コマンドは失敗します ( Contoso は Identity パラメーターの値であり、 Receive は指定されていない位置指定パラメーターの値と見なされます)。 この例では、エラーは次のようになります。
引数 'Receive' を受け入れる位置指定パラメーターが見つかりません
プレーン テキスト値の場合、単一引用符と二重引用符は重要ではありません。 ただし、変数が関係する場合は、選択が重要です。
- 二重引用符: 変数は実際の値に置き換えられます。
- 単一引用符: 変数は文字通り扱われます。
たとえば、 $Server = Mailbox01 すると、使用する引用符に基づいて次の出力が生成されます。
-
"$Server 例" は 、
Mailbox01 Exampleになります。 -
'$Server 例' は 、
$Server Exampleになります。
変数の詳細については、「 about_Variables と about_Automatic_Variables」を参照してください。
Exchange PowerShell のエスケープ文字
任意のプログラミング言語では、 エスケープ文字 は、その言語の通常の関数ではなく、文字を識別するために使用されます。 Exchange PowerShell では、テキスト文字列を二重引用符で囲むと、エスケープ文字はバック引用符エスケープ文字 ( ' ) になります。
たとえば、出力を The price is $23する場合は、" 価格は '$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 演算子です。 組み合わされたペア!=は、"等しくない" を意味します。[ ]: 角かっこは、配列位置のインデックス値を指定します。 インデックス値は、常に 0 から始まるオフセットです。 たとえば、$Redという名前の配列では、配列内の 10 番目の位置の値が$Red[9]されます。角かっこは、変数に型を割り当てることもできます。 たとえば、
$Aという名前の変数を XML として識別するには、$A=[XML] "<Test><A>value</A></Test>"を使用します。 次の変数型を使用できます:Array、Bool、Byte、Char、Char[]、Decimal、Double、Float、Int、Int[]、Long、Long[]、RegEx、Single、ScriptBlock、String、Type、およびXML.{ }: 中かっこを使用して、コマンドに式を含めます。 たとえば、「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 + 6は12と等しくなります。-: 負符号演算子は、別の値から 1 つの値を減算するか (たとえば、12 - 66等しい) か、負の数値 (たとえば、-6 * 6が-36等しい) を示します。*: 次のタスクにはアスタリスクを使用できます。-
一致する文字列: たとえば、
Get-User | Where-Object {$_.Department -like 'Sales*'})。 -
数値を乗算する: たとえば、
6 * 6が36と等しくなります。 -
文字列値を指定した回数繰り返します。たとえば、
"Test" * 3TestTestTestと等しくなります。
-
一致する文字列: たとえば、
/: スラッシュは、1 つの値を別の値で除算します。 たとえば、6 / 6は1と等しくなります。%: パーセント記号には、次の用途があります。- 数値評価では、除算演算子から剰余を返します。 たとえば、
6 % 4は2と等しくなります。 -
パイプラインでは、ForEach-Object コマンドレットの短縮形です。 たとえば、
Import-Csv C:\MyFile.csv | ForEach-Object {Set-Mailbox $_.Identity -Name $_.Name}is the same asImport-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"}と同じです。|
- 数値評価では、除算演算子から剰余を返します。 たとえば、