Exchange 管理シェルの毎日のヒント

 

適用先: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007

トピックの最終更新日: 2007-08-24

ここでは、Exchange 管理シェルの毎日のヒントと関連する Microsoft Exchange Server 2007 ヘルプ トピック、または他の適切な Microsoft マニュアルのポイントについて説明します。毎日のヒントは Exchange 管理シェルを開くたびに表示されます。

毎日のヒントをオンデマンドで表示するには、Exchange 管理シェルを開き、Get-Tip コマンドレットを実行します。

ヒント 関連項目

Identity パラメータが "位置パラメータ" であることをご存知でしたか。つまり、

Get-Mailbox "domain\user"Get-Mailbox -Identity "domain\user"

の代わりに使用することができ、操作が簡単になります。

パス内にあるすべてのスクリプトを返すには、次のように入力します。

Get-Command -Type ExternalScript

プロファイル内で次のように割り当てると便利なショートカットになります。

Function Get-Scripts { Get-Command -Type ExternalScript }

何かの操作を実行するたびに長いコマンドを入力するのにうんざりしていませんか。そんなときはエイリアスを使用しましょう。次のように入力します。

Set-Alias GetSg Get-StorageGroup

現在のすべてのエイリアスを表示するには、次のように入力します。

Get-Alias

メールボックス データを直接 .pst ファイルにエクスポートするには、Export-Mailbox コマンドレットを使用します。複数のメールボックスを 1 つのコマンドでエクスポートできます。次のように入力します。

Get-Mailbox | Export-Mailbox -PSTFolderPath <path to folder where data will be exported>

Import-Mailbox コマンドレットを使用して, .pst ファイルをメールボックスにエクスポートすることもできます。次のように入力します。

Get-Mailbox | Import-Mailbox -PSTFolderPath <path to folder with <alias>.pst files to import>

カスタム フィルタを使用する動的配布グループのメンバを表示するには、Get-Recipient コマンドレットを使用します。次のように入力します。

$DDG = Get-DynamicDistributionGroup "Contoso Marketing Managers"

Get-Recipient -RecipientPreviewFilter $DDG.RecipientFilter

Exchange 管理シェルは計算機でもあります。コマンド ラインで直接試してみてください。

1.2343+3123 or (23/435)*2

 

コマンド ラインの緊急ヘルプ。サポートが必要なときは、次のように入力します。

Help <cmdlet-name> or <cmdlet-name> -?

ワイルドカード文字検索と名前の部分一致検索も実行できます。

Help *UM*

コマンドレットの詳細を表示するには、次のコマンドを使用します。

Get-Command <cmdlet-name>

コマンドレットのすべてのパラメータをすばやく表示するには、次のように入力します。

Get-Command <cmdlet-name> | Format-List Definition

または次の省略形を使用します。

Gcm <cmdlet-name> | Fl Def*

チルダ文字 () は、UNIX ユーザーにはなじみ深いでしょう。この文字は、ルート ディレクトリへのショートカットを表します。既定でどのように評価されるかを表示するには、次のように入力します。

Dir ~

これを便利なショートカットとして使用することができます。

Cp SomeFile "~\My Documents"

メールボックスを移動するには、次のように入力します。

Move-Mailbox

次のようにして、サーバー SRV1 のすべてのユーザーをサーバー SRV2 に移動することができます。

Get-Mailbox -Server SRV1 | Move-Mailbox -TargetDatabase SRV2

Ctrl + C は、Exchange 管理シェルのハードブレイク コマンドと同じ動作をします。コマンドの実行に時間がかかり過ぎる場合や、操作をすばやく取り消したいときは、Ctrl + C キーを押して実行を停止することができます。

 

Pushd と Popd は、Exchange 管理シェル内でも、cmd.exe 内と同じように動作します。次のように入力します。

Pushd <location>

  • Pushd (このサイトは英語の場合があります)
  • Popd (このサイトは英語の場合があります)

何よりも XML! Exchange 管理シェルは、XML をネイティブ型として処理するため、次のような、おもしろいことができます。

$Sample = [XML](Get-Content SomeXMLFile.xml)

このコマンドは、$Sample を実際の XML オブジェクトに割り当てます。表示するには、次のように入力します。

$Sample

ナビゲートするには、次のように入力します。

$Sample.Prop1.Prop2

XML データの読み込みに、テキストの解析が必要ありません。

"Config" で終わるコマンドレットは、サーバーまたは組織ごとに 1 つの、単一の構成を管理します。これらのタスクについては、構成のインスタンスが 1 つしかないため、ID を指定する必要はありません。構成がサーバーごとの場合は Server パラメータを指定しなければならない場合があります。

Exchange 2007 サーバー上の、ユニファイド メッセージングが有効でないすべてのユーザーの一覧を取得するには、次のコマンドを使用します。

Get-UmMailbox | ForEach { If($_.UmEnabled -Eq $False){$_.Name}}

Exchange 2007 サーバー上の、ユニファイド メッセージングが有効なすべてのユーザーの一覧を取得するには、次のコマンドを使用します。

Get-UmMailbox | ForEach { If($_.UmEnabled -Eq $True){$_.Name}}

ユーザーのエイリアスと Exchange 2007 サーバー名と内線電話番号を表形式で表示するには、次のように入力します。

Get-UmMailbox | Format-Table ServerName,@{e={$_.SamAccountName};Label="User Alias"},@{Expression="Extensions";Label="Telephone numbers"}

送信呼び出しが無効にされた UM IP ゲートウェイ サーバー名と、UM IP ゲートウェイ サーバーに関連付けられたハント グループの一覧を表示するには、次のコマンドを使用します。

Get-UMIPGateway | ForEach {If($_.OutCallsAllowed -Eq $False){ "Gateway Name = " +$_.Name;ForEach ($HuntGroup In $_.Huntgroups){"Huntgroups " + $Huntgroup}}}

すべての IP 禁止一覧プロバイダをテストするには、Get-IpBlockListProvider コマンドレットを Test-IpBlockListProvider コマンドレットにパイプします。

Get-IpBlockListProvider | Test-IpBlockListProvider -IpAddress 192.168.0.1

Remove コマンドを使用してオブジェクトを削除する前に、WhatIf パラメータを使用して、予測する結果が得られることを確認してください。

ネイティブ コマンドレットと相互動作するためにコマンドレットの出力を文字列に変換すると便利な場合があります。たとえば、次のように入力します。

Get-Command | Out-String | Findstr "command"

perfmon カウンタやローカル コンピュータ構成など、すべての Win 32 WMI 情報を取得する方法があります。たとえば、次のように入力します。

Get-WMIObject Win32_PerfRawData_PerfOS_Memory

スパムにうんざりですか。だれでもそうでしょう。以下の 2 つのコマンドを実行して、Exchange 管理シェルでリアルタイム ブロック リスト (RBL) プロバイダを構成することができます。

Set-IPBlockListProvidersConfig -Enabled $True -ExternalMailEnabled $True

次に、

Add-IPBlockListProvider -Name <Name of RBL Provider> -LookupDomain <FQDN of RBL Provider> -AnyMatch $True

Exchange 管理シェルからイベント ログにアクセスします。イベント ログ全体を取得するには、次のコマンドを実行します。

Get-EventLog Application | Format-List

すべての Exchange 関連イベントを取得するには、次のコマンドを実行します。

Get-EventLog Application | Where { $_.Source -Ilike "*Exchange*" }

Exchange 管理シェルの 1 つの利点は、コマンドレットがオブジェクトをコンソールに表示できる点です。その後この出力を操作して、さまざまな方法で整理することができます。たとえば、表形式で表示するには、Format-Table を使用します。

Get-Mailbox | Format-Table Name,Database,RulesQuota

プロパティ名を忘れてしまいましたか。心配ありません。名前の一部とワイルドカード文字を指定して、一致するすべてのプロパティを取得することができます。

Get-Mailbox | Format-Table Name,*SMTP*

CSV ファイルに含まれるデータを操作するには、Import-CSV を使用して、データをオブジェクトに割り当てます。たとえば、次のように入力します。

$MyCSV = Import-CSV TestFile.CSV

その後、Exchange 管理シェルで簡単にデータを操作できます。たとえば、CSV データに Mailboxes という列がある場合、次のコマンドを使用して、Mailboxes 列を基準にデータを並べ替えたりグループ化したりできます。

並べ替えるには、 $MyCSV | Sort Mailboxes を使用します。

グループ化するには、 $MyCSV | Group Mailboxes を使用します。

このコマンドはユーザーのすべてのメール ボックス サーバーを循環して、メールボックス ストアのいずれかの中で、一意に識別されるが切断されているメールボックスをすべて再接続します。

Get-ExchangeServer | `

Where { $_.IsMailboxServer -Eq '$True' } `

| ForEach { Get-MailboxStatistics -Server $_.Name `

| Where { $_.DisconnectDate -NotLike '' } `

| ForEach { Connect-Mailbox -Identity `

$_.DisplayName -Database $_.DatabaseName} }

Tab キーによる補完機能を使用すると、コマンドレットを入力するためのキー操作を少なくすることができます。コマンドレットの入力途中で Tab キーを押してください。Tab キーによる補完機能は、入力内容にハイフン (-) があれば常に作動します。以下に例を示します。

Get-Send<tab>

と入力すると、Get-SendConnector となります。次のような正規表現も使用できます。

Get-U*P*<tab>

このコマンドの入力中に Tab キーを押すと、ユニファイド メッセージング メールボックス ポリシー コマンドレットなど、適合するすべてのコマンドレットが循環されます。

ラボ内のテスト ユーザー グループを作成するには、次のコマンドを使用します。

1..100 | ForEach { Net User "User$_" MyPassword=01 /ADD /Domain; Enable-Mailbox "User$_" -Database <MailboxDatabaseName> }

Outlook Web Access 仮想ディレクトリの認証設定を変更するには、次のコマンドを参考にしてください。これは、フォーム ベースの認証から Windows 認証に変更するコマンドです。

Set-OwaVirtualDirectory -Identity "OWA (Default Web Site)" -FormsAuthentication 0 -WindowsAuthentication 1

すべてまたは一部の Outlook Web Access 仮想ディレクトリ上でプロパティを設定するには、Get-OwaVirtualDirectory の出力を Set-OwaVirtualDirectory コマンドレットにパイプします。たとえば、次のコマンドは、すべての Outlook Web Access 仮想ディレクトリの Gzip レベルを設定します。

Get-OwaVirtualDirectory | Set-OwaVirtualDirectory -GzipLevel High

ユーザーのデバイス一覧から ActiveSync デバイスを削除するには、次のように入力します。

Remove-ActiveSyncDevice

このコマンドレットは、サーバーと正常に同期しなくなったデバイスの問題を解決するのに役立ちます。

モバイル デバイスからすべてのデータを消去するには、次のコマンドを使用します。

Clear-ActiveSyncDevice

デバイスを消去する時間を指定するか、またはデバイスが次にサーバーに接続したときにタスクを実行するように指定します。

ユーザーのメールボックスに同期するすべてのデバイスの一覧を表示するには、次のように入力します。

Get-ActiveSyncDeviceStatistics

デバイス名、オペレーティング システム、最後の同期時刻など、さまざまな情報が返されます。

ユーザーから、モバイル デバイスの同期パスワードを復元するように求められたらどうすればよいでしょう。ユーザーのパスワードを返すには、次のように入力します。

Get-ActiveSyncDeviceStatistics -ShowRecoveryPassword

ストレージ グループのパスを他の場所に移動するには、次のように入力します。

Move-StorageGroupPath -LogFolderPath DestLogFolder

データを移動せずにパス設定だけを変更するには、このコマンドに ConfigurationOnly パラメータを付けて使用します。このコマンドは、障害回復時に特に便利です。

Caution注意 :
このコマンドレットを誤って使用するとデータが損失します。

データベースのパスを他の場所に移動するには、次のように入力します。

Move-DatabasePath -EdbFilePath DestFileName

データを移動せずにファイル パス設定だけを変更するには、このコマンドに ConfigurationOnly パラメータを付けて使用します。このコマンドは、障害回復時に特に便利です。

Caution注意 :
このコマンドレットを誤って使用するとデータが損失します。

特定のユニファイド メッセージングのダイヤル プランにダイヤル制限を設定するには、次のように入力します。

$Dp = Get-UmDialPlan -Identity <Your_DialPlan_Identity>

$Dp.ConfiguredInCountryGroups.Add("Group1,91xxxxxxxxxx,91xxxxxxxxxx")

$Dp.ConfiguredInCountryGroups.Add("Group1,9xxxxxxxxxx,91xxxxxxxxxx")

$Dp.ConfiguredInCountryGroups.Add("Group1,9xxxxxxx,9xxxxxxx")

$Dp.AllowedInCountryGroups.Add("Group1")

$Dp.OutsideLineAccessCode = 9

$Dp | Set-UmDialPlan

メールボックスのグループに新しいプライマリ SMTP アドレスを追加する簡単な方法があるのをご存知ですか。次のコマンドを実行すると、会社フィールドが Contoso に設定されているすべてのメールボックスのプライマリ SMTP アドレスに @contoso.com ドメインを割り当てる新しい電子メール アドレス ポリシーが作成されます。

New-EmailAddressPolicy -Name Contoso -RecipientFilter {Company -Eq "Contoso"} -EnabledPrimarySMTPAddressTemplate "@contoso.com"

類似した ID を持つオブジェクトのグループを取得するには、Identity パラメータでワイルドカード文字を使用して、複数のオブジェクトを検索することができます。次のように入力します。

Get-Mailbox *John*

Get-ReceiveConnector *toso.com

Get-JournalRule *discovery*

類似した ID を持つオブジェクトのグループを構成するには、Get コマンドレットを使用して出力を Set コマンドレットにパイプする際に、Identity パラメータでワイルドカード文字を使用できます。次のように入力します。

Get-Mailbox *John* | Set-Mailbox -ProhibitSendQuota 100MB

このコマンドは、メールボックスの ID に "John" を含むすべてのメールボックスを検索し、ProhibitSendQuota パラメータを 100MB に設定します。

ほとんどのコマンドレットでは、関連オブジェクトを表示または変更するために、1 つの名詞の出力を別の名詞に渡すことができます。たとえば、サーバー上の特定のメールボックス データベースに置かれているすべてのメールボックスにメールボックスの制限を設定することができます。設定するには、次のコマンドを使用します。

Get-MailboxDatabase "Executives" | Get-Mailbox | Set-Mailbox -ProhibitSendQuota 300MB

このコマンドは、"Executives" メールボックス データベース内にあるすべてのメールボックスを取得し、その ProhibitSendQuota 値を 300MB に設定します。

コマンドレットで使用できるパラメータを忘れてしまったら、Tab キーによる補完機能を使用しましょう。次のように入力します。

Set-Mailbox -<tab>

ハイフン (-) を入力して Tab キーを押すと、コマンドレットで使用できるすべてのパラメータを循環することができます。探す範囲を限定するには、パラメータの名前の一部を入力して Tab キーを押します。次のように入力します。

Set-Mailbox -Prohibit<tab>

ping はもう必要ありません。これからは Test-MapiConnectivity があります。Test-MapiConnectivity を使用して、ユーザーとサーバーの間の接続の問題を解決することができます。Test-MapiConnectivity と各種のコマンドレットを組み合わせて使用して、手動で情報を探さなくても、問題を絞り込むことができます。

メールボックス : Get-Mailbox <Mailbox Name> | Test-MapiConnectivity

メールボックス データベース : Get-MailboxDatabase <Database Name> | Test-MapiConnectivity

サーバー : Get-MailboxServer <Server Name> | Test-MapiConnectivity

類似した名前を持つ複数の配布グループにエイリアスを追加するには、次のように入力します。

Get-DistributionGroup *Exchange* | Add-DistributionGroupMember -Member kim

このコマンドは、"Exchange" という語を含むすべての配布グループに "kim" というエイリアスを追加します。

Exchange 管理シェルを使用しているときに発生したことをすべて記録するには、Start-Transcript コマンドレットを使用します。このコマンドレットの実行後に行ったすべての動作が、指定したテキスト ファイルに記録されます。セッションの記録を停止するには、Stop-Transcript コマンドレットを使用します。

Start-Transcript コマンドレットは既定で保存先のテキスト ファイルを上書きするので注意してください。セッションを既存のファイルに追記する場合は、Append パラメータを使用します。

Start-Transcript c:\MySession.txt -Append

 

指定した回数だけコマンドを繰り返す便利な方法があります。For loop を書く代わりに、以下の構文を使用してください。

1..10 | ForEach { "do something here" }

たとえば、次のコマンドを実行すると、sg1sg10 という名前の 10 個の新しいストレージ グループが TestServer サーバー上に作成されます。

1..10 | ForEach { New-StorageGroup -Name "sg$_" -server TestServer }

メールボックス データベースがいつ最後にバックアップされたかを調べるには、次のように入力します。

Get-ExchangeServer | Get-MailboxDatabase -Status | Format-Table Name, *Back*

すべてのメールボックスを、1 つのメールボックス データベースから別のメールボックス データベースに移動するには、次のコマンドを使用すれば簡単です。

Get-MailboxDatabase <Source Mailbox Database> | Get-Mailbox | Move-Mailbox -TargetDatabase <Destination Mailbox Database>

Get-MailboxDatabase コマンドレットでワイルドカード文字を使用して、複数のソース メールボックス データベースのメールボックスを単一の送信先メールボックス データベースに統合することもできます。

ネットワークにアクセスできながら、Exchange 組織外にメール アカウントを持っているユーザーがいますか。Exchange Server 2007 では、通常の Active Directory アカウントでありながら、メールが有効な連絡先のように動作する、メールが有効なユーザーを作成できるようになりました。Enable-MailUser コマンドレットを使用すると、Exchange サーバーにメールボックスを持たない、既存のあらゆる Active Directory ユーザーに、電子メール連絡先属性を追加することができます。これにより、Exchange 組織内のユーザーは、そのユーザーの外部メール アカウントに電子メールを送信できるようになります。次のように入力します。

Enable-MailUser -Identity <Active Directory Alias> -ExternalEmailAddress <Destination SMTP Address>

メールボックス データベースの既定の送信禁止クォータを変更するには、次のように入力します。

Set-MailboxDatabase <Mailbox Database Name> -ProhibitSendQuota <New Quota Size>

ProhibitSendQuota パラメータを使用するときに、バイト数を指定できます。たとえば、送信禁止クォータを 200 MB (メガバイト) に設定するには、次のように入力します。

ProhibitSendQuota 200MB

IssueWarningQuota パラメータと ProhibitSendReceiveQuota パラメータも同様に構成できます。

各サーバーが実行している Exchange Server のバージョンを調べるには、次のように入力します。

Get-ExchangeServer | Format-Table Name, *Version*

どの Exchange 2007 サーバーが、有効なプロダクト キーで構成されていないか、またそれらの試用期間が終わっているかどうかを調べるには、次のように入力します。

Get-ExchangeServer | Where { $_.IsExchange12TrialEdition -Eq $true } | Format-Table Name, *Trial*

サーバーで実行されているのが Exchange Server 2007 Standard Edition か Exchange Server 2007 Enterprise Edition かを調べるには、次のように入力します。

Get-ExchangeServer <Server Name> | Format-Table Name, Edition

すべての Exchange サーバーが実行しているエディションを調べるには、<Server Name> パラメータを省略します。

会議室を予約するために使用できる新しいリソース メールボックスを作成するには、次のように入力します。

New-Mailbox -Name <Conference Room Name> -UserPrincipalName <SMTP Address> -Database <Mailbox Database> -OrganizationalUnit <Organizational Unit> -Room

このコマンドを実行すると、ユーザーからの会議出席依頼を受け付けられるメールボックスを持つ、無効にされた Active Directory ユーザーが作成されます。

送信するすべての電子メール メッセージに免責事項を追加するには、次のように入力します。

$Condition = Get-TransportRulePredicate FromScope

$Condition.Scope = "InOrganization"

$Condition2 = Get-TransportRulePredicate SentToScope

$Condition2.Scope = "NotInOrganization"

$Action = Get-TransportRuleAction ApplyDisclaimer

$Action.Text = "Sample disclaimer text"

New-TransportRule -Name "Sample disclaimer" -Condition @($Condition, $Condition2) -Action @($Action)

特定のドメインに送信される電子メール メッセージのプロパティを制御するには、RemoteDomain コマンドレットを使用します。New-RemoteDomain コマンドレットを使用して、新しいリモート ドメインを作成します。次のように入力します。

New-RemoteDomain -Name "Contoso.com Configuration" -DomainName contoso.com

次に Set-RemoteDomain コマンドレットを使用して、このリモート ドメインに必要なプロパティを変更します。

Set-RemoteDomain "Contoso.com Configuration" -AutoReplyEnabled $True -AutoForwardEnabled $True

Set-OwaVirtualDirectory コマンドレットを使用すると、Outlook Web Access ユーザーが使用できる機能を制御することができます。次のように入力します。

Set-OwaVirtualDirectory "OWA (Default Web Site)" -ContactsEnabled $True -ChangePasswordEnabled $True

ブール値は、$True または $False として評価できるパラメータです。ブール値は、通常、オブジェクトの動作を変更する、オブジェクトのフラグとして使用されます。Exchange 管理シェルでは、ブール値パラメータに、$True$False1、または 0 を指定する必要があります。TrueFalse を含め、他の値は使用できません。たとえば、次のコマンドは、どちらも ExternalDsnSendHtml パラメータを $True に設定します。

Set-TransportServer <Server Name> -ExternalDsnSendHtml $True

Set-TransportServer <Server Name> -ExternalDsnSendHtml 1

特定のドメイン名から送信されたすべての電子メール メッセージを、配信不能レポート (NDR) を生成せずにサーバーのキューから削除するには、次のように入力します。

Remove-Message -WithNDR $False -Filter { FromAddress -Like "*@contoso.com" }

複数のデータベースおよびサーバーで、削除済みアイテムの保存期間の制限を簡単に適用する方法があります。特定のサーバー上のすべてのデータベースに削除済みアイテムの保存期間を設定する場合は、次のコマンドを使用できます。

Get-MailboxDatabase -Server <Server Name> | Set-MailboxDatabase -ItemRetention 45.00:00:00

組織内のすべてのサーバーに対して、同じ削除済みアイテムの保存期間の制限またはメールボックスの保存期間の制限を適用することもできます。

Get-MailboxDatabase | Set-MailboxDatabase -ItemRetention 45.00:00:00 -MailboxRetention 120.00:00:00

Active Directory ユーザー アカウントが特定のメールボックスに対して持っているアクセス許可を調べるには、次のコマンドを使用します。

Get-Mailbox <Mailbox to Check> | Get-MailboxPermission -User <Active Directory User>

特定の Active Directory ユーザーがどのメールボックスにアクセス許可を持っているかを調べるには、次のように入力します。

Get-Mailbox -ResultSize Unlimited | Get-MailboxPermission -User <Active Directory User> | Format-Table Identity, AccessRights, Deny

注意 : このコマンドは、組織内のすべてのメールボックスを列挙します。メールボックスが多数ある場合は、特定のメールボックスを指定することもできます。

組織内のすべてのメールボックス データベースのバックアップ状態の一覧を取得するには、次のように入力します。

Get-MailboxDatabase -Status | Format-Table Name, Server, *Backup*

特定のサーバーのメールボックスに限定する場合は、次のように入力します。

Get-MailboxDatabase -Server <Server Name> -Status | Format-Table Name, *Backup*

Exchange サーバーまたはデータベースの現在の状態を取得するには、Status パラメータを使用します。以下に例を示します。

Get-ExchangeServer -Status | Format-List

Get-MailboxDatabase -Server <Server Name> -Status | Format-List

すべてのメールボックス データベースのマウントされた状態を表示するには、次のように入力します。

Get-MailboxDatabase -Status | Format-Table Name, Server, Mounted

サーバー側のフィルタリングとクライアント側のフィルタリングの違いは何でしょう。サーバー側のフィルタリングは、受信者とキューのコマンドレットで使用します。これらのコマンドレットは膨大な結果セットを返すことがあるので、Filter パラメータをサポートしています。サーバーは、指定した基準に従って結果をフィルタリングし、フィルタリング後の結果を送信します。クライアント側のフィルタリングは、あらゆるコマンドレットで使用できます。結果セット全体がクライアント コンピュータに送信され、そこでデータがフィルタリングされ、フィルタ後の結果セットが提供されます。クライアント側のフィルタリングは Where-Object コマンドレットを使用します。このコマンドは、Where と省略することもできます。

Exchange Server 2007 ユニファイド メッセージング (UM) を使用すると、認証されていない発信者から特定の内線電話番号に電話がかかってきた場合、その内線番号でなく、オペレータにつなぐことができます。認証されていない発信者からの電話を UM によってオペレータにつなぐ対象とするユーザーを一覧表示するには、次のように入力します。

Get-UMMailbox | `

Where-Object { $_.AllowUMCallsFromNonUsers -eq `

[Microsoft.Exchange.Data.Directory.Recipient.AllowUMCallsFromNonUsersFlags] "None" }

クライアント側のフィルタリングを使用して、表示または操作したいデータだけを返すことができます。以下の例では、Engineering 部門のすべての Active Directory ユーザー アカウントを取得して、結果を、NameDepartment の 2 列の表に挿入します。この ResultSize パラメータを指定すると、Get-User コマンドレットは結果セットを 2,000 ユーザーに限定します。

Get-User -ResultSize 2000 | Where { $_.Department -Eq "Engineering" } | Format-Table Name, Department

特別な変数 $_ は、1 つのコマンドレットからパイプライン内の別のコマンドレットに渡されるオブジェクトを表します。$_ 変数はシェルによって自動的に開始され、現在のパイプライン オブジェクトにバインドされます。$_ 変数に割り当てられたオブジェクトのプロパティには、他のあらゆるオブジェクトの場合と同様にアクセスできます。以下の例は、パイプラインを通じて渡される各メールボックス オブジェクトの Name プロパティを表示する方法を示しています。

Get-Mailbox | ForEach { $_.Name }

Import-Csv コマンドレットを使用すると、CSV ファイルをインポートして、オブジェクトとして扱うことができます。CSV ファイルの各行が配列内の要素となり、各列がプロパティとなります。CSV ファイルを変数に割り当てたり、その内容を他のコマンドレットに直接パイプしたりできます。以下の例では、CSV ファイル内に NameAliasEmailAddress の 3 つの列があります。行は複数あり、ForEach コマンドレットが循環します。各行内のデータは、新しいメール連絡先を作成するために使用されます。

Import-Csv | ForEach { New-MailContact -Name $_.Name -Alias $_.Alias -ExternalEmailAddress $_.EmailAddress -OrganizationalUnit Users }

Exchange シェルのプロファイルをカスタマイズするには、次のコマンドを実行して、Microsoft.PowerShell_profile.ps1 ファイルの場所を特定します。

$Profile

PSConfiguration フォルダと Microsoft.PowerShell_profile.ps1 ファイルの作成が必要な場合があります。作成したら、任意の関数とエイリアスを追加することができます。追加した項目は、Exchange 管理シェルが開かれるたびに読み込まれます。

次のコマンドを実行すると、組織内のすべてのメールボックスで、個人の電子メール フォルダの最大サイズを 10MB に指定する管理フォルダ ポリシーが設定されます。

New-ManagedFolder -Name "Reference e-mail folder with 10mb quota" -FolderName "Personal and Reference E-mail" -StorageQuota 10MB

New-ManagedFolderMailboxPolicy "Personal Folder Policy" -ManagedFolderLinks "Reference e-mail folder with 10mb quota"

Get-Mailbox -ResultSize Unlimited | Set-Mailbox -ManagedFolderMailboxPolicy "Personal Folder Policy"

Set-MailboxServer <Server Name> -ManagedFolderAssistantSchedule "Sun.12:00-Sun.11:00"

コマンドを実行する際に発生することをすべて表示するには、コマンドに Verbose パラメータを含めます。このパラメータを指定すると、Exchange 管理シェルは、コマンドを完了するためにサーバーが実行するすべての動作に関する詳細情報を表示します。この情報は、トラブルシューティングで役立ちます。

サイズの値を受け付けられるコマンドレットでは、指定する整数値が KB (キロバイト)、MB (メガバイト)、GB (ギガバイト)、TB (テラバイト) のいずれであるかを指定できます。以下に例を示します。

Set-Mailbox "Kim Akers" -ProhibitSendQuota 200MB

Exchange 管理シェルは、何らかの方法でオブジェクトを変更する Exchange 関連のすべてのコマンドをログ出力できます。Exchange 関連のコマンドの動作は、PowerShell イベント ログに出力されます。Exchange 関連のコマンドのログ出力を有効にするには、次のコマンドを実行します。

Set-ItemProperty HKLM:\SOFTWARE\Microsoft\PowerShell\1\PowerShellSnapIns\Microsoft.Exchange.Management.PowerShell.Admin -Name LogpipelineExecutionDetails -value 1

 

参照している情報が最新であることを確認したり、他の Exchange Server 2007 ドキュメントを見つけたりするには、Exchange Server TechCenter を参照してください。