Exchange Online PowerShell モジュールについて

Exchange Online PowerShell モジュールは、最新の認証を使用し、Microsoft 365 のすべての Exchange 関連の PowerShell 環境 (Exchange Online PowerShell、セキュリティ & コンプライアンス PowerShell、スタンドアロン Exchange Online Protection (EOP) PowerShell に接続するための多要素認証 (MFA) と連携します。

注意

バージョン 2.0.5 以前は、Exchange Online PowerShell V2 モジュール (EXO V2 モジュールと略す) と呼ばれます。 バージョン 3.0.0 以降は、Exchange Online PowerShell V3 モジュール (EXO V3 モジュールと略す) と呼ばれます。

モジュールを使用した接続手順については、次の記事を参照してください。

この記事の以下のセクションでは、モジュールのしくみ、モジュールをインストールしてメンテンアンスする方法、およびモジュールで使用できる最適化された Exchange Online コマンドレットについて説明します。

バージョン 3.0.0 (EXO V3 モジュール) の更新

バージョン 3.0.0 は、モジュールの 2.0.6-PreviewX バージョンの一般提供 (GA) リリースであり、現在は EXO V3 モジュールと呼ばれています。 このバージョンは、EXO V2 モジュールの履歴機能 (バージョン 2.0.5 以前) を改善し、次の機能を備えています。

  • 証明書ベースの認証 (CBA またはアプリのみの認証とも呼ばれます) は、Security & Compliance PowerShell で使用できます。

  • REST API によってサポートされるコマンドレットは、powerShell Exchange Onlineで使用できます。 REST API コマンドレットには、履歴に対応するコマンドレットよりも次の利点があります。

    • セキュリティ強化: REST API コマンドレットには先進認証のサポートが組み込まれており、リモートの PowerShell セッションに依存しないため、クライアント コンピューター上の PowerShell では、PowerShell をExchange Online するための WinRM での基本認証は必要ありません。
    • 信頼性の向上: REST API コマンドレットは、組み込みの再試行で一時的なエラーを処理するため、エラーや遅延が最小限に抑えられます。 以下に例を示します。
      • ネットワークの遅延によるエラー。
      • 完了に長い時間がかかる大規模なクエリによる遅延。
    • パフォーマンスの向上: この接続では、PowerShell で PowerShell ランスペースを設定Exchange Online回避できます。

    Exchange Online PowerShell の REST API コマンドレットの利点を次の表に示します。

      リモート PowerShell コマンドレット Get-EXO* コマンドレット REST API コマンドレット
    セキュリティ セキュリティが最も低い 安全性が高い 安全性が高い
    パフォーマンス 低パフォーマンス 高パフォーマンス 中程度のパフォーマンス
    信頼性 信頼性が低い 信頼性が高い 信頼性が高い
    機能 使用可能なすべてのパラメーターと出力プロパティ 使用可能な限られたパラメーターと出力プロパティ 使用可能なすべてのパラメーターと出力プロパティ

    注意

    現時点では、Security & Compliance PowerShell コマンドレットのコマンドレットは REST API によってサポートされていません。 Security & Compliance PowerShell のすべての コマンドレットはリモート PowerShell セッションに依存しているため、クライアント コンピューターの PowerShell では、Connect-IPPSSession コマンドレットを正常に使用するために WinRM での基本認証が必要です。

    • Exchange Online PowerShell の REST API コマンドレットは、同じコマンドレット名を持ち、リモートの PowerShell と同じように動作するため、スクリプトを更新する必要はありません。

    • Exchange Online で使用可能なほぼすべてのリモート PowerShell コマンドレットが、REST API によってサポートされるようになりました。

  • Connect-ExchangeOnlineUseRPSSession スイッチは、Exchange Online PowerShell のすべての既存のリモート PowerShell コマンドレットへのアクセスを許可します。

    • UseRPSSession スイッチには、クライアント コンピューターの WinRM での基本認証が必要です。
    • Exchange Online PowerShell に接続するときに UseRPSSession スイッチを使用しない場合は、REST API コマンドレット のみを 使用できます。
  • Exchange Online PowerShell のいくつかの REST API コマンドレットが、実験的な UseCustomRouting スイッチで更新されました。 このスイッチは、コマンドが必要なメールボックス サーバーに直接ルーティングし、全体的なパフォーマンスが向上する可能性があります。

    • UseCustomRoutingSwitch を使用する場合は、メールボックスの ID に次の値のみを使用できます。

      • ユーザー プリンシパル名 (UPN)
      • 電子メール アドレス
      • メールボックス GUID
    • UseCustomRouting スイッチは、Exchange Online PowerShell の次の REST API コマンドレットでのみ使用できます:

      • Get-Clutter
      • Get-FocusedInbox
      • Get-InboxRule
      • Get-MailboxAutoReplyConfiguration
      • Get-MailboxCalendarFolder
      • Get-MailboxFolderPermission
      • Get-MailboxFolderStatistics
      • Get-MailboxMessageConfiguration
      • Get-MailboxPermission
      • Get-MailboxRegionalConfiguration
      • Get-MailboxStatistics
      • Get-MobileDeviceStatistics
      • Get-UserPhoto
      • Remove-CalendarEvents
      • Set-Clutter
      • Set-FocusedInbox
      • Set-MailboxRegionalConfiguration
      • Set-UserPhoto

      UseCustomRouting スイッチを実験的に使用し、発生した すべての問題を報告してください。

  • Get-ConnectionInformation コマンドレットを使用して、Exchange Online PowerShell への REST ベースの接続に関する情報を取得します。 このコマンドレットは、Windows PowerShellの Get-PSSession コマンドレットが REST ベースの接続の情報を返さないために必要です。

    Get-ConnectionInformation を使用できるシナリオを次の表に示します。

    シナリオ 期待される出力
    Connect-ExchangeOnline コマンドの前に 実行します。 Nothing を返します。
    UseRPSSession スイッチを使用する Connect-ExchangeOnline コマンドの後で実行します。 何も返しません ( Get-PSSession を使用)。
    REST ベースの Connect-ExchangeOnline コマンド ( UseRPSSession スイッチなし) の後で実行します。 1 つの接続情報オブジェクトを返します。
    複数の REST ベースの Connect-ExchangeOnline コマンドの後に 実行します。 接続情報オブジェクトのコレクションを返します。
    UseRPSSession スイッチの有無にかかわらず、複数の Connect-ExchangeOnline コマンドの後で実行します。 REST ベースのセッションごとに 1 つの接続情報オブジェクトを返します。
  • REST ベースの接続で Connect-ExchangeOnline コマンドレットの SkipLoadingFormatData スイッチを使用します (UseRPSSSession スイッチを使用していません)、フォーマット データの読み込みを回避し、Connect-ExchangeOnline コマンドを高速に実行します。

詳細については、この記事の後半の 「リリース ノート」 セクションを参照してください。

古いExchange Onlineリモート PowerShell モジュール (V1) から現在のリリースへの切り替えの詳細については、このブログ記事を参照してください。

Exchange Online PowerShell モジュールのバグと問題を報告する

注意

モジュールの GA バージョンの場合は、発生している問題のサポート チケットを開きます。 モジュールのプレビュー バージョンの場合は、このセクションで説明する電子メール アドレスを使用します。 また、モジュールの GA バージョンとプレビュー バージョンの両方のフィードバックと提案に電子メール アドレスを使用することもできます。

exocmdletpreview[at]service[dot]microsoft[dot]com で問題を報告する場合は、メール メッセージにログ ファイルを含める必要があります。 ログファイルを生成するには、<Path to store log file>を必要な出力フォルダーに置き換えて、次のコマンドを実行します:

Connect-ExchangeOnline -EnableErrorReporting -LogDirectoryPath <Path to store log file> -LogLevel All

注意

1 つの PowerShell セッションまたはスクリプトで Connect-ExchangeOnline コマンドレットと Disconnect-ExchangeOnline コマンドレットを頻繁に使用すると、メモリ リークが発生する可能性があります。 この問題を回避する最善の方法は、Connect-ExchangeOnline コマンドレットで CommandName パラメーターを使用して、セッションで使用されるコマンドレットを制限することです。

Exchange Online PowerShell モジュールのコマンドレット

モジュールのすべてのバージョンには、一括データ取得シナリオ (数千および数千のオブジェクト) の速度に最適化された、Exchange Online PowerShell 用の 9 つの排他的 な Get-EXO* コマンドレットが含まれています。 以前の関連するリモート PowerShell コマンドレットは引き続き使用できます。

モジュールでのみ使用できる強化されたExchange Online PowerShell コマンドレットを次の表に示します。

EXO モジュールコマンドレット 古い関連コマンドレット
EXOMailbox Get-Mailbox
Get-EXORecipient Get-Recipient
Get-EXOCasMailbox Get-CASMailbox
Get-EXOMailboxPermission Get-MailboxPermission
EXORecipientPermission Get-RecipientPermission
Get-EXOMailboxStatistics Get-MailboxStatistics
Get-EXOMailboxFolderStatistics Get-MailboxFolderStatistics
Get-EXOMailboxFolderPermission Get-MailboxFolderPermission
Get-EXOMobileDeviceStatistics Get-MobileDeviceStatistics

モジュール内の接続関連コマンドレットを次の表に示します。

EXO モジュールコマンドレット 古い関連コマンドレット Comments
Connect-ExchangeOnline Connect-EXOPSSession
または
New-PSSession
Connect-IPPSSession Connect-IPPSSession
Disconnect-ExchangeOnline Remove-PSSession
Get-ConnectionInformation Get-PSSession v2.0.6-Preview7 以降で使用できます。

モジュール内に存在するその他のExchange Onlineコマンドレットを次の表に示します。

コマンドレット コメント
Get-CustomNudge v2.0.6-Preview5 以降で使用できます
New-CustomNudge v2.0.6-Preview5 以降で使用できます
Remove-CustomNudge v2.0.6-Preview5 以降で使用できます
Set-CustomNudge v2.0.6-Preview5 以降で使用できます
Get-CustomNudgeAssignment v2.0.6-Preview5 以降で使用できます
New-CustomNudgeAssignment v2.0.6-Preview5 以降で使用できます
Remove-CustomNudgeAssignment v2.0.6-Preview5 以降で使用できます
Set-CustomNudgeAssignment v2.0.6-Preview5 以降で使用できます
Get-CustomNudgeSettings v2.0.6-Preview5 以降で使用できます
Set-CustomNudgeSettings v2.0.6-Preview5 以降で使用できます
Get-MyAnalyticsFeatureConfig v2.0.4 以降で使用できます。
Set-MyAnalyticsFeatureConfig v2.0.4 以降で使用できます。
Get-UserBriefingConfig Get-MyAnalyticsFeatureConfig に置き換えられます。
Set-UserBriefingConfig Set-MyAnalyticsFeatureConfig に置き換えられます。
Get-VivaInsightsSettings v2.0.5 以降で使用できます。
Set-VivaInsightsSettings v2.0.5 以降で使用できます。

Exchange Online PowerShell モジュールをインストールして保守する

PowerShell ギャラリー https://www.powershellgallery.com/packages/ExchangeOnlineManagement/からモジュールをダウンロードします。

このセクションの手順では、モジュールをインストール、更新、アンインストールする方法について説明します。

Exchange Online PowerShell モジュールでサポートされているオペレーティング システム

モジュールの最新バージョンは、Windows、Linux、Apple macOS の PowerShell 7 で正式にサポートされています。

具体的には、バージョン 2.0.4 以降PowerShell 7.0.3 以降 でサポートされています。

PowerShell 7 の詳細については、「PowerShell 7.0 のお知らせ」を参照してください。

Apple macOS

このモジュールは、次のバージョンの macOS でサポートされています。

  • macOS 11 Big Sur 以降
  • macOS 10.15 Catalina
  • macOS 10.14 Mojave

macOS に PowerShell 7 をインストールする手順については、「macOS への PowerShell のインストール」を参照してください。

注意

インストールの記事で説明したとおり、WSMan に必要な OpenSSL をインストールする必要があります。

PowerShell 7 および OpenSSL をインストールした後、次の手順を実行します。

  1. PowerShell をスーパーユーザーとして実行します: sudo pwsh

  2. PowerShell スーパーユーザー セッションで、次のコマンドを実行します。

    Install-Module -Name PSWSMan
    
    Install-WSMan
    

    メッセージが表示されたら、PSGallery をコマンドレットのソースとして受け入れます。

これで、通常の PowerShell の前提条件を実行し、Exchange Online PowerShell モジュールをインストールできます。

Linux

このモジュールは、Linux の次のディストリビューションで正式にサポートされています。

  • Ubuntu 18.04 LTS
  • Ubuntu 20.04 LTS

Linux の他のディストリビューションでモジュールの使用に問題がある場合は、 問題を報告してください

Linux に PowerShell 7 をインストールする手順については、「Linux への PowerShell のインストール」を参照してください。

PowerShell 7 をインストールした後、次の手順を実行します。

  1. PowerShell をスーパーユーザーとして実行します: sudo pwsh

  2. PowerShell スーパーユーザー セッションで、次のコマンドを実行します。

    Install-Module -Name PSWSMan
    
    Install-WSMan
    

    メッセージが表示されたら、PSGallery をコマンドレットのソースとして受け入れます。

これで、通常の PowerShell の前提条件を実行し、Exchange Online PowerShell モジュールをインストールできます。

注意

プロキシ サーバーの背後にあるネットワークから Exchange Online PowerShell に接続する場合、EXO V2 モジュール (バージョン v2.0.5 以前) は Linux では機能しません。 プロキシ サーバーの背後にあるネットワークから接続するには、Linux で EXO V3 モジュール (v3.0.0 または v2.0.6-PreviewX) を使用する必要があります。

Windows

モジュールのすべてのバージョンは、Windows PowerShell 5.1 でサポートされています。

Windows の PowerShell 7 には、バージョン 2.0.4 以降が必要です。

このモジュールのバージョン 2.0.5 以降では、Microsoft .NET Framework 4.7.1 以降の接続が必要です。 それ以外の場合は、エラーが発生します System.Runtime.InteropServices.OSPlatform 。 この要件は、現在のバージョンの Windows では問題になりません。 .NET Framework 4.7.1 をサポートする Windows のバージョンの詳細については、この記事を参照してください。

以前のバージョンの Windows での Windows PowerShell要件とモジュールのサポートについては、次の一覧で説明します。

  • Windows 8.1 1

  • R21 のWindows Server 2012またはWindows Server 2012

  • Windows 7 Service Pack 1 (SP1)2,3,4

  • Windows Server 2008 R2 SP1 2,3,4

  • このバージョンの Windows の 1 PowerShell 7 には、Windows 10ユニバーサル C ランタイム (CRT) が必要です

  • 2 このバージョンの Windows はサポートの終了に達し、Azure 仮想マシンでのみサポートされるようになりました。

  • 3 このバージョンの Windows では、v2.0.3 以前のバージョンのモジュールのみがサポートされます。

  • このバージョンの Windows の 4 Windows PowerShell 5.1 には、.NET Framework 4.5 以降と Windows Management Framework 5.1 が必要です。 詳細については、「Windows Management Framework 5.1」を参照してください。

Exchange Online PowerShell モジュールの前提条件

注意

このセクションで説明する設定は、すべてのオペレーティング システムのすべてのバージョンの PowerShell に必要です。

PowerShell 実行ポリシーを RemoteSigned に設定する

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

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

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

Set-ExecutionPolicy RemoteSigned

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

WinRM で基本認証を有効にする

注意

この記事で前述したように、EXO V3 モジュールでは、REST ベースの接続に対して WinRM での基本認証は必要ありません。

リモート PowerShell 接続の場合、WinRM は基本認証を許可する必要があります。 ユーザー名とパスワードの組み合わせは送信されません。 WinRM のクライアント側の実装では OAuth がサポートされていないため、セッションの OAuth トークンを送信するには、Basic 認証 ヘッダー が必要です。

WinRM で基本認証が有効になっていることを確認するには、コマンド プロンプト または Windows PowerShell で、次のコマンドを実行します:

注意

次のコマンドでは、WinRM が有効になっている必要があります。 WinRM を有効にするには、次のコマンドを実行します winrm quickconfig

winrm get winrm/config/client/auth

Basic = true の値が表示されない場合は、次のコマンドの いずれか を実行して WinRM の基本認証を有効にする必要があります:

  • コマンド プロンプト にて:

    winrm set winrm/config/client/auth @{Basic="true"}
    
  • Windows PowerShell にて:

    winrm set winrm/config/client/auth '@{Basic="true"}'
    
  • Windows PowerShell でレジストリを変更する:

    Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WinRM\Client' -Name 'AllowBasic' -Type DWord -Value '1'
    

WinRM の基本認証が無効になっている状態で接続しようとすると、次のいずれかのエラーが表示されます。

WinRM クライアントは要求を処理できません。 現在、基本認証はクライアント構成で無効になっています。 クライアント構成を変更して、要求を再試行してください。

OAuth を使用した PowerShell セッションの作成に失敗しました。

ヒント

問題がある場合は、Exchange のフォーラム (Exchange Online または Exchange Online Protection) にアクセスして質問してください。

Exchange Online PowerShell モジュールをインストールする

モジュールを初めてインストールするには、次の手順を実行します。

  1. PowerShellGetをインストールする」 の説明に従って、PowerShellGet モジュールをインストールまたは更新します。

  2. Windows PowerShell ウィンドウを閉じてから再度開きます。

  3. これで、Install-Module コマンドレットを使用して、PowerShell ギャラリーからモジュールをインストールできます。 通常、モジュールの最新のパブリック バージョンが必要ですが、使用可能な場合はプレビュー バージョンをインストールすることもできます。

    • モジュールの 最新の公開バージョン をインストールするには、次の いずれか のコマンドを実行します。

      • 昇格された PowerShell ウィンドウ (すべてのユーザー):

        Install-Module -Name ExchangeOnlineManagement
        
      • 現在のユーザー アカウントのみ:

        Install-Module -Name ExchangeOnlineManagement -Scope CurrentUser
        
    • モジュールの使用可能なプレビュー バージョンを 表示するには、次のコマンドを実行します。

      Find-Module ExchangeOnlineManagement -AllVersions -AllowPrerelease
      
    • モジュールの最新バージョンのプレビュー をインストールするには、次 のいずれかの コマンドを実行します。

      • 昇格された PowerShell ウィンドウ (すべてのユーザー):

        Install-Module -Name ExchangeOnlineManagement -AllowPrerelease
        
      • 現在のユーザー アカウントのみ:

        Install-Module -Name ExchangeOnlineManagement -Scope CurrentUser -AllowPrerelease
        
    • モジュールの特定のプレビュー バージョンを インストールするには、必要な値に置き換えて<PreviewVersion>、次 のいずれかの コマンドを実行します。

      • 昇格された PowerShell ウィンドウ (すべてのユーザー):

        Install-Module -Name ExchangeOnlineManagement -RequiredVersion <PreviewVersion> -AllowPrerelease
        
      • 現在のユーザー アカウントのみ:

        Install-Module -Name ExchangeOnlineManagement -RequiredVersion <PreviewVersion> -AllowPrerelease -Scope CurrentUser
        

    終了したら、Y を入力してライセンス契約に同意します。

詳細な構文とパラメータ情報については、「Install-Module」を参照してください。

Exchange Online PowerShell モジュールを更新する

モジュールがコンピューターに既にインストールされている場合は、このセクションの手順を使用してモジュールを更新できます。

  1. 現在インストールされているモジュールのバージョンと、それがインストールされているモジュールのバージョンを確認するには、次のコマンドを実行します。

    Get-InstalledModule ExchangeOnlineManagement | Format-List Name,Version,InstalledLocation
    

    モジュールが C:\Program Files\WindowsPowerShell\Modules, にインストールされている場合は、すべてのユーザーにインストールされます。 モジュールが Documents フォルダーにインストールされている場合は、現在のユーザー アカウントにのみインストールされます。

  2. Update-Module コマンドレットを使用して、PowerShell ギャラリーからモジュールを更新できます。 通常、モジュールの最新のパブリック バージョンが必要ですが、使用可能な場合はプレビュー バージョンにアップグレードすることもできます。

    • モジュールの最新のパブリック バージョン にアップグレードするには、最初にモジュールをインストールした方法に基づいて、次 のいずれかの コマンドを実行します (現在のユーザー アカウントに対してのみ、すべてのユーザーと同じ)。

      • 昇格された PowerShell ウィンドウ (すべてのユーザー):

        Update-Module -Name ExchangeOnlineManagement
        
      • 現在のユーザー アカウントのみ:

        Update-Module -Name ExchangeOnlineManagement -Scope CurrentUser
        
    • モジュールの プレビュー バージョン にアップグレードするには、使用可能な最新のプレビュー バージョンにアップグレードするか、RequiredVersion パラメーターを使用して特定のプレビュー バージョンにアップグレードします。

      • モジュールの使用可能なプレビュー バージョンを 表示するには、次のコマンドを実行します。

        Find-Module ExchangeOnlineManagement -AllVersions -AllowPrerelease
        
      • モジュールの最新のプレビュー バージョン にアップグレードするには、次 のいずれかの コマンドを実行します。

        • 昇格された PowerShell ウィンドウ (すべてのユーザー):

          Update-Module -Name ExchangeOnlineManagement -AllowPrerelease
          
        • 現在のユーザー アカウントのみ:

          Update-Module -Name ExchangeOnlineManagement -Scope CurrentUser -AllowPrerelease
          
      • モジュールの特定のプレビュー バージョン にアップグレードするには、必要な値に置き換えて<PreviewVersion>、次 のいずれかの コマンドを実行します。

        • 昇格された PowerShell ウィンドウ (すべてのユーザー):

          Update-Module -Name ExchangeOnlineManagement -RequiredVersion <PreviewVersion> -AllowPrerelease
          
        • 現在のユーザー アカウントのみ:

          Update-Module -Name ExchangeOnlineManagement -Scope CurrentUser -RequiredVersion <PreviewVersion> -AllowPrerelease
          

    終了したら、Y を入力してライセンス契約に同意します。

  3. 更新が成功したことを確認するには、次のコマンドを実行して、インストールされているモジュールのバージョン情報を確認します。

    Import-Module ExchangeOnlineManagement; Get-Module ExchangeOnlineManagement
    

詳細な構文とパラメータ情報については、「Update-Module」を参照してください。

Exchange Online PowerShell モジュールのインストールに関するトラブルシューティング

  • 次のいずれかのエラーが表示されます。

    PowerShellGetFormatVersion '<version>'の指定されたモジュール'ExchangeOnlineManagement' は、現在のバージョンの PowerShellGet でサポートされていません。 このモジュール ' ExchangeOnlineManagement ' をインストールするには、PowerShellGet モジュールの最新バージョンを取得してください。

    警告: URI 'https://go.microsoft.com/fwlink/?LinkID=627338&clcid=0x409' から''にダウンロードできません。

    警告: 使用可能なプロバイダーの一覧をダウンロードできません。インターネット接続を確認してください。

    PowerShellGet をインストールする」の説明に従って、PowerShellGet モジュールのインストールを最新バージョンに更新します。 ExchangeOnlineManagement モジュールをもう一度更新する前に、必ず PowerShell ウィンドウを閉じてから再度開きます。

  • 2020 年 4 月現在、PowerShell ギャラリーでは TLS 1.2 以降の接続のみをサポートしています。 詳細については、PowerShell ギャラリーを参照してください。

    Microsoft .NET Framework で現在の設定を確認するには、Windows PowerShell で次のコマンドを実行します。

    [Net.ServicePointManager]::SecurityProtocol
    

    PowerShell ギャラリーの TLS サポートの記事で説明したように、一時的に セキュリティ プロトコルを TLS 1.2 に変更して PowerShellGet モジュールまたは ExchangeOnlineManagement モジュールをインストールするには、モジュールをインストールする 前に Windows PowerShell で次のコマンドを実行します。

    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 
    

    Microsoft .NET framework バージョン 4.x 以降で強力な暗号化を 永続的に 有効にするには、Windows アーキテクチャに基づいて次のいずれかのコマンドを実行します。

    • x64:

      Set-ItemProperty -Path 'HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319' -Name 'SchUseStrongCrypto' -Type DWord -Value '1'
      
    • x86

      Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\.NETFramework\v4.0.30319' -Name 'SchUseStrongCrypto' -Type DWord -Value '1'
      

    詳細については、SchUseStrongCryptoを参照してください。

  • 次のエラーが表示されます。

    指定された検索条件とモジュール名 'ExchangeOnlineManagement' に一致するものが見つかりませんでした。 使用可能なすべての登録済みモジュール リポジトリを確認するには、 Get-PSRepository を実行してみてください。

    PowerShell モジュールの既定のリポジトリが PSGallery に設定されていません。 このエラーを解決するには、次のコマンドを実行します。

    Register-PSRepository -Default
    

Exchange Online PowerShell モジュールをアンインストールする

現在インストールされているモジュールのバージョンと、それがインストールされているモジュールのバージョンを確認するには、次のコマンドを実行します。

Get-InstalledModule ExchangeOnlineManagement | Format-List Name,Version,InstalledLocation

モジュールが C:\Program Files\WindowsPowerShell\Modules, にインストールされている場合は、すべてのユーザーにインストールされました。 モジュールがドキュメント フォルダーにインストールされている場合は、現在のユーザー アカウントにのみインストールされました。

モジュールをアンインストールするには、最初にモジュールをインストールした方法に基づいて、次 のいずれかの コマンドを実行します (すべてのユーザーと現在のユーザー アカウントに対してのみ)。

  • 昇格された PowerShell ウィンドウ (すべてのユーザー):

    Uninstall-Module -Name ExchangeOnlineManagement
    
  • 現在のユーザー アカウントのみ:

    Uninstall-Module -Name ExchangeOnlineManagement
    

詳細な構文とパラメータ情報については、「Uninstall-Module」を参照してください。

Exchange Online PowerShell モジュールのプロパティとプロパティ セット

従来の Exchange Online コマンドレットでは、多くの場合空白または多くのシナリオに関連しない多数のプロパティを含む、出力に可能なすべてのオブジェクト プロパティが返されます。 この動作により、パフォーマンスが低下します (サーバーの計算量が増え、ネットワーク負荷が増加します)。 コマンドレットの出力では、プロパティの完全な補完が必要になることはほとんどありません。

モジュール内の Get-EXO* コマンドレットには、分類された出力プロパティがあります。 すべてのプロパティが同じ重要性を持ち、すべてのシナリオですべてのプロパティを返すのではなく、関連する特定のプロパティを プロパティセット に分類しました。 簡単に言えば、これらのプロパティセットは、コマンドレットの2つ以上の関連プロパティのバケットです。

最も大きく最もよく使用される Get-EXO* コマンドレットでは、プロパティ セットを使用します。

これらのコマンドレットでは、プロパティ セットは、次のパラメータによって制御されます。

同じコマンドで、PropertySets パラメーターと Properties パラメーターを一緒に使うことができます。

また、コマンドレット出力に必要なプロパティ (ID プロパティなど) の最小限のセットを含む Minimum プロパティ セットも含まれています。 Minimum プロパティ セットのプロパティについては、powerShell モジュール コマンドレットのプロパティ セットExchange Online説明しています

  • PropertySets または プロパティ を 使用しない場合、プロパティは、自動的に最小プロパティセットに設定されます。
  • PropertySets または プロパティ パラメーターを使用する場合は、指定されたプロパティ および 最小プロパティセットのプロパティ を取得し ます。

いずれの場合も、コマンドレットの出力結果に含まれるプロパティが大幅に減少します。また、その結果を返す時間も短縮されます。

たとえば、Exchange Online PowerShell に接続した後、次の例では、最初の 10 個のメールボックスに対して Minimum プロパティ セットのプロパティのみが返されます。

Get-EXOMailbox -ResultSize 10

対照的に、同じ Get-Mailbox コマンドの出力は、最初の 10 個のメールボックスのそれぞれに対して、少なくとも 230 のプロパティが返されます。

注意

PropertySets パラメーターが値 All を受け入れるように設定しても、コマンドを実行すると処理速度が遅くなり、信頼性が低下するため、この値を使用してすべてのプロパティを取得することは決してお勧めしません。 シナリオに必要なプロパティの最小数を取得するには、常に PropertySetsProperties パラメーターを使用します。

モジュールでのフィルター処理の詳細については、「Exchange Online PowerShell モジュールのフィルター」を参照してください。

リリース ノート

特に明記されていない限り、Exchange Online PowerShell モジュールの現在のリリースには、以前のリリースのすべての機能が含まれています。

現在のリリース: バージョン 3.0.0 (v2.0.6-PreviewX と呼ばれるプレビュー バージョン)

  • バージョン 3.0.0 (EXO V3 モジュール) セクションの更新で既に説明されている機能:
    • Security & Compliance PowerShell (バージョン 2.0.6-Preview5 以降) の証明書ベースの認証
    • REST ベースの接続 (バージョン 2.0.6-Preview7 以降) 用の Get-ConnectionInformation コマンドレット。
    • REST ベースの接続 (バージョン 2.0.6-Preview8 以降) 用の Connect-ExchangeOnline コマンドレットの SkipLoadingFormatData スイッチ。
  • 特定のシナリオで確認を求めるために使用した特定のコマンドレットは、そうしなくなりました。 既定では、コマンドレットは完了まで実行されます。
  • 失敗したコマンドレットの実行から返されるエラーの形式が若干変更されました。 例外に追加のデータ (例外の種類など) が含FailureCategoryまれるFullyQualifiedErrorIdようになり、. エラーの形式は、さらに変更される可能性があります。

以前のリリース

バージョン 2.0.5

  • 新しい Get-OwnerlessGroupPolicy および Set-OwnerlessGroupPolicy コマンドレットは、所有者のない Microsoft 365 グループを管理するためのものです。

    注意

    cmdlets はモジュールで利用できますが、feature は Private Preview のメンバーのみ利用できます。

  • 新しい Get-VivaInsightsSettings および Set-VivaInsightsSettings コマンドレットは、Viva インサイトの Headspace 機能へのユーザー・アクセスを制御します。

バージョン 2.0.4

  • PowerShell 7 は、この記事の「Exchange Online PowerShell モジュールの前提条件」セクションで説明されているように、Windows、Linux、Apple macOS で正式にサポートされています。

  • PowerShell 7 のモジュールでは、ブラウザーベースのシングル サインオン (SSO) およびその他のサインイン 方法がサポートされています。 詳細については、「PowerShell 7 のログイン エクスペリエンス」を参照してください。

  • Get-UserAnalyticsConfigSet-UserAnalyticsConfig コマンドレットは、Get-MyAnalyticsConfigSet-MyAnalyticsConfig コマンドレットに置き換えられました。さらに、機能レベルでアクセスを構成できます。詳細については、「MyAnalytics を構成する」を参照してください。

  • すべてのユーザー ベースの認証におけるリアルタイム ポリシーとセキュリティの適用。 モジュールで継続的アクセス評価 (CAE) が有効になっています。 CAE の詳細については、こちらをご覧ください

  • Get-EXOMailboxStatistics コマンドレットの出力で LastUserActionTimeLastInteractionTime プロパティを使用できるようになりました。

  • 対話型のサインイン プロセスでは、安全な応答 URL を使用してアクセス トークンを取得できるより安全な方法を使用するようになりました。

バージョン 2.0.3

  • 証明書ベースの認証 (CBA) の一般提供は、無人スクリプトやバックグラウンドのオートメーション シナリオで先進認証を使用することができます。利用可能な証明書の保存場所は次のとおりです。
    • Azure Key 値 ( 証明書) パラメーターにあるリモート。 このオプションでは、実行時にのみ証明書を取得してセキュリティを強化します。
    • CurrentUser または LocalMachine 証明書ストアのローカル ( CertificateThumbprint パラメーター)。
    • エクスポートされた証明書ファイル (CertificateFilePathCertificatePassword パラメーター) にあるローカル。 詳細については、Exchange Online PowerShell モジュールの無人スクリプトの Connect-ExchangeOnline およびアプリ専用認証のパラメーターの説明を参照してください。
  • 1つの PowerShell ウィンドウで Exchange Online PowerShell とセキュリティ/コンプライアンス PowerShell に同時に接続します。
  • 新しい CommandName パラメーターを使用すると、セッションにインポートされた Exchange Online PowerShell コマンドレットを指定して制限できます。 このオプションでは、使用頻度の高い PowerShell アプリケーションのメモリの消費量を削減します。
  • Get-EXOMailboxFolderPermission は、Identity パラメーターで ExternalDirectoryObjectID をサポートするようになりました。
  • 最初の V2 コマンドレット呼び出しの最適化された待機時間。 ラボの結果について説明します。最初の呼び出しの待機時間は、8 秒から約 1 秒に短縮されています。 実際の結果は、コマンドレットの結果のサイズとテナント環境によって変わります。

バージョン 1.0.1

  • これは、EXO V2 モジュールの一般提供 (GA) バージョンです。 安定しており、実稼働環境での使用準備が整っています。
  • Get-EXOMobileDeviceStatistics コマンドレットが Identity パラメーターをサポートするようになりました。
  • 特定のケースでのセッションの自動再接続の信頼性が向上しました。以前は、自動再接続ロジックのバグが原因で、スクリプトの50分以下の実行で、 "コマンドレットが見つかりません" というエラーが発生することがありました。
  • スクリプトを簡単に移行できるように、よく使用される2つの属性、 "User" と "MailboxFolderUser" について固定データタイプの問題を解決しました。
  • フィルターのサポートが強化されました。これにより、次の4つの演算子がサポートされるようになりました: EndsWith、Contains、 Notと NotLikeのサポート。 Exchange Online PowerShell モジュールのフィルターで、フィルターでサポートされていない属性を確認します。

バージョン 0.4578.0

  • ユーザーレベルでの組織のブリーフィングメールの構成に関するサポートが追加されました。Set-UserBriefingConfigGet-UserBriefingConfig コマンドレットを使用します。
  • Disconnect-ExchangeOnline コマンドレットを使用したセッションのクリーンアップのサポート このコマンドレットは、Get-PSSession | Remove-PSSessionに相当する V2 です。 セッションオブジェクトやローカルファイルをクリーンアップするだけでなく、V2 コマンドレットに対して認証するために使用されるキャッシュからのアクセストークンを削除することもできます。
  • EXOMailboxFolderPermission のidentity パラメーターとして FolderId を使うことができるようになりました。 Get-MailboxFolder を使用して、FolderId 値を取得できます。 例: Get-MailboxFolderPermission -Identity <UPN>:<Folder-Path> Get-MailboxFolderPermission -Identity <UPN>:\<Folder-Id>
  • エラーを引き起こしている特定の要求ルーティングエラーは解決され、Get-EXOMailboxStatistics の信頼性が向上しました。
  • セッションがインポートされるたびに新しいセッションでモジュールを作成するのではなく、新しいセッションで既存のモジュールを再使用してセッションを作成することで、メモリー使用を最適化。

バージョン 0.4368.1

  • Connect-IPPSSession コマンドレットを使用してセキュリティ/コンプライアンス PowerShell コマンドレットのサポートが追加されました。
  • ShowBanner スイッチを使用して、お知らせバナーを非表示にすることができます (-ShowBanner:$false)。
  • クライアント例外でコマンドレットを終了する
  • Remote PowerShell には、パフォーマンス改善のため EXO コマンドレットで意図的にサポートされていない各種の複雑なデータ型が含まれていました。 管理スクリプトをシームレスに移行できるように、リモート PowerShell コマンドレットと V2 コマンドレットの間の、複雑ではないデータ型の違いが解決されました。

バージョン 0.3582.0

  • セッションの作成時にプレフィックスをサポートします。
    • プレフィクスの付いたコマンドレットを含むセッションは一度に1つのみ作成できます。
    • EXO V2 コマンドレットにはプレフィックス EXO が既に付いているので、プレフィックスを使用しません。プレフィックスとして EXO を使用しないでください。
  • クライアントコンピューターで WinRM 基本認証が無効になっていても、EXO V2 コマンドレットを使用します。 リモート PowerShell コマンドレットは、WinRM 基本認証を必要とすることに注意してください。無効になっている場合は、使用できません。
  • V2 コマンドレットの Identity パラメーターが名前およびエイリアスもサポートするようになりました。 エイリアスまたは名前を使用すると、V2 コマンドレットのパフォーマンスが低下するため、使用することはお勧めしません。
  • V2 コマンドレットによって返される属性のデータ型がリモート PowerShell コマンドレットとは異なる問題が修正されました。 データ型が異なる属性はまだ少しありますが、数か月以内に処理する予定です。
  • 修正済みのバグ: Connect-ExchangeOnlineが資格情報またはUserPrincipalNameで呼び出されたとき、セッションが頻繁に再接続する

バージョン 0.3555.1

  • 認証の問題が原因で、パイプ処理されたコマンドレットが次のエラーで失敗したバグが修正されました。

    実行空間が開いていないため、パイプラインを呼び出すことができません。 実行空間の現在の状態は ' Closed ' です。

バージョン 0.3527.4

  • 更新された Get-help コンテンツ。
  • Get-Help で、Online パラメーターが存在しないページにエラー コード 400 でリダイレクトされていた問題を修正しました。

バージョン 0.3527.3

  • 委任フローを使用して、別のテナントの Exchange 管理をするサポートを追加しました。
  • 1つの PS ウィンドウ内の他の PowerShell モジュールと共に動作します。
  • 位置パラメーターのサポートが追加されました。
  • "日付/時刻フィールド" は、クライアントのロケールをサポートするようになりました。
  • バグ修正: Connect-ExchangeOnlineの実行中に PSCredential が空になりました。
  • バグ修正: フィルターに $null が含まれているときに、クライアントモジュールでエラーが発生しました。
  • EXO V2 モジュール内に作成されたセッションに、名前を付けることができます (名前付けパターン: ExchangeOnlineInternalSession_% SomeNumber%)。
  • バグ修正: トークンの有効期限と PSSession のアイドル期間の違いのため、リモート PowerShell コマンドレットが断続的に失敗します。
  • 主要なセキュリティ更新
  • バグの修正と強化された機能