リモート PowerShell を使用した Exchange サーバーへの接続

ローカル コンピューターに Exchange 管理ツールがインストールされていない場合は、Windows PowerShell を使用して Exchange サーバーへのリモート PowerShell セッションを作成できます。これは、資格情報を入力し、必要な接続設定を指定し、Exchange コマンドレットをローカル Windows PowerShell セッションにインポートする、簡単な 3 段階のプロセスです。

注意

  • Exchange サーバーの広範囲にわたる管理に使用するコンピューターでは、Exchange 管理シェルを使用することをお勧めします。 Exchange 管理ツールをインストールして、Exchange 管理シェルを取得できます。 詳細については、「Exchange Server 管理ツールをインストールする」および「Exchange 管理シェルを開く」を参照してください。 Exchange 管理シェルの詳細については、「Exchange サーバー PowerShell (Exchange 管理シェル) 」を参照してください。

  • Get-ExchangeCertificate コマンドレットは、リモート PowerShell を完全にはサポートしていません。 代わりに Exchange 管理シェルを使用して、このコマンドレットのすべてのプロパティを取得することをお勧めします。

はじめに把握しておくべき情報

  • 予想所要時間 : 5 分未満

  • 接続後、アクセス権を持っている、またはアクセスできないコマンドレットとパラメーターは、ロールベースのアクセス制御 (RBAC) によって制御されます。詳細については、「Exchange Server のアクセス許可」を参照してください。

  • 次の Windows のバージョンを使用できます。

    • Windows 11
    • Windows 10
    • Windows 8.1
    • Windows Server 2019
    • Windows Server 2016
    • Windows Server 2012 または Windows Server 2012 R2
    • Windows 7 Service Pack 1 (SP1)*
    • Windows Server 2008 R2 SP1*

    * このバージョンの Windows はサポートが終了しており、Azure 仮想マシンでのみサポートされます。 このバージョンの Windows を使用するには、Microsoft .NET Framework 4.5 以降をインストールしてから、Windows Management Framework の更新されたバージョン (3.0、4.0、5.1 のいずれか 1 つ) をインストールする必要があります。 詳細については、「.NET FrameworkWindows Management Framework 3.0Windows Management Framework 4.0、および Windows Management Framework 5.1をインストールする」を参照してください。

  • スクリプトを実行するように Windows PowerShell を構成する必要があります。既定では、そのように構成されていないため、接続を試行すると、次に示すエラーが発生します。

    このシステムでスクリプトの実行が無効になっているため、ファイルを読み込めません。 ファイルの署名に使用する有効な証明書を指定します。

    インターネットからダウンロードしたすべての PowerShell スクリプトが信頼された発行元によって署名されていることを要求するには、管理者特権の Windows PowerShell ウィンドウ ([管理者として実行] を選択したときに開く Windows PowerShell ウィンドウ) で次のコマンドを実行します。

    Set-ExecutionPolicy RemoteSigned
    

    実行ポリシーの詳細については、「実行ポリシーについて」を参照してください。

ヒント

問題が発生していますか? Exchange Server フォーラムでサポートを依頼してください。。

リモート Exchange サーバーに接続する

  1. ローカル コンピューターで、Windows PowerShell を開き、次のコマンドを実行します。

    $UserCredential = Get-Credential
    

    表示される [Windows PowerShell 資格情報の要求] ダイアログボックスで、ユーザープリンシパル名(UPN)(たとえば、chris@contoso.com)とパスワードを入力し、[OK] をクリックします。

  2. <ServerFQDN>Exchange サーバーの完全修飾ドメイン名 (たとえば、mailbox01.contoso.com) に置き換えて、次のコマンドを実行します。

    $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://<ServerFQDN>/PowerShell/ -Authentication Kerberos -Credential $UserCredential
    

    ConnectionUri 値はhttpsではなくhttpです。

  3. 次のコマンドを実行します。

    Import-PSSession $Session -DisableNameChecking
    

注意

完了した時点でリモート PowerShell セッションを切断してください。セッションを切断せずに Windows PowerShell ウィンドウを閉じると、使用可能なリモート PowerShell セッションがすべて消費される可能性があり、セッションの有効期限が切れるまで待つ必要があります。リモート PowerShell セッションを切断するには、次のコマンドを実行します。

Remove-PSSession $Session

正常な動作を確認する方法

手順 3 の後に、Exchange Online コマンドレットがローカル Windows PowerShell セッションにインポートされます。その様子が進行状況バーに表示されます。何もエラーが表示されなければ、正常に接続されています。簡単に確かめるには、Exchange Online コマンドレット (Get-Mailbox など) を実行して結果を確認します。

エラーが表示された場合は、次の要件を確認します。

  • よく起きる問題がパスワードの入力ミスです。もう一度 3 つのステップを実行します。特に、ステップ 1 ではユーザー名とパスワードを慎重に入力します。

  • Exchange サーバーへの接続に使用するアカウントでリモート PowerShell アクセスを有効にする必要があります。 詳細については、「Exchange サーバーへのリモート PowerShell アクセスを制御する」を参照してください。

  • ローカル コンピューターと Exchange サーバーの間で TCP ポート 80 トラフィックを開く必要があります。開いている可能性がありますが、組織に制限の厳しいネットワーク アクセス ポリシーがある場合は考慮する必要があります。

関連項目

この記事で使用するコマンドレットは、Windows PowerShell コマンドレットです。これらのコマンドレットの詳細については、次の記事を参照してください。