Exchange Online PowerShell モジュール (2022 年から Exchange Online PowerShell V3 モジュールまたは EXO V3 モジュールとも呼ばれます) は、最新の認証を使用し、多要素認証 (MFA) を使用して、Exchange Online PowerShell、Security & Compliance PowerShell、およびすべての Exchange クラウド関連の PowerShell 環境に接続します。オンプレミスの電子メール環境のクラウド保護用の PowerShell をExchange Online Protectionします。
モジュールを使用した接続手順については、次の記事を参照してください。
Exchange Online PowerShell への接続
ヒント
オンプレミスの電子メール環境のクラウド保護用の PowerShell Exchange Online Protectionでは、Exchange Online PowerShell と同じ接続手順が使用されます。
Exchange Online PowerShell とセキュリティ & コンプライアンス PowerShell での無人スクリプトのアプリ専用認証
この記事の以下のセクションでは、モジュールのしくみ、モジュールをインストールしてメンテンアンスする方法、およびモジュールで使用できる最適化された Exchange Online コマンドレットについて説明します。
EXO V3 モジュールの REST API 接続
Exchange Online PowerShell とセキュリティ & コンプライアンス PowerShell では、2023 以降のすべてのコマンドレットに REST API 接続が使用されます。
REST API 接続には、PowerShellGet モジュールと PackageManagement モジュールが必要です。 詳細については、「 Windows での REST ベースの接続用 PowerShellGet」を参照してください。
REST API 接続のコマンドレットには、履歴に対応するコマンドレットよりも次の利点があります。
- より安全: 先進認証の組み込みサポートと、リモート PowerShell セッションへの依存なし。 クライアント コンピューターの PowerShell では、 WinRM での基本認証は必要ありません。
-
信頼性の向上: 一時的なエラーでは組み込みの再試行が使用されるため、エラーまたは遅延が最小限に抑えられます。 例:
- ネットワーク遅延によるエラー。
- 完了に長い時間がかかる大規模なクエリによる遅延。
- パフォーマンスの向上: REST API 接続では、PowerShell 実行スペースを設定しないようにします。
次の表は、REST API コマンドレットの利点と、使用できないリモート PowerShell コマンドレットと EXO V3 モジュール内の排他的な Get-EXO* コマンドレットを比較しています
リモート PowerShell コマンドレット | Get-EXO* コマンドレット | REST API コマンドレット | |
---|---|---|---|
セキュリティ | 最も安全性が低い | 安全性が高い | 安全性が高い |
パフォーマンス | パフォーマンスが低い | 高パフォーマンス | 中程度のパフォーマンス |
信頼性 | 最も信頼性の低い | 信頼性の高い | 信頼性の高い |
機能 | 使用可能なすべてのパラメーターと出力プロパティ | 使用可能な制限付きパラメーターと出力プロパティ | 使用可能なすべてのパラメーターと出力プロパティ |
REST API コマンドレットには同じコマンドレット名があり、リモートの PowerShell と同じように機能するため、スクリプト内のコマンドレット名やパラメーターを更新する必要はありません。
ヒント
Invoke-Command コマンドレットは、REST API 接続では機能しません。 代替案については、「 REST API 接続の Invoke-Command シナリオの回避策」を参照してください。
Exchange Online PowerShell のいくつかのコマンドレットは、試験的な UseCustomRouting スイッチで更新されます。 このスイッチは、コマンドが必要なメールボックス サーバーに直接ルーティングし、全体的なパフォーマンスが向上する可能性があります。 UseCustomRouting スイッチを実験的に使用します。
UseCustomRoutingSwitch を使用する場合は、メールボックスの ID に次の値のみを使用できます。
- ユーザー プリンシパル名 (UPN)
- 電子メール アドレス
- メールボックス GUID
UseCustomRouting スイッチは、次のExchange Online PowerShell コマンドレットでのみ使用できます。
- 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
Get-ConnectionInformation コマンドレットを使用して、PowerShell とセキュリティ & コンプライアンス PowerShell への接続に関する情報Exchange Online取得します。 Windows PowerShellの Get-PSSession コマンドレットは REST API 接続の情報を返さないので、このコマンドレットが必要です。
Get-ConnectionInformation を使用できるシナリオについては、次の表を参照してください。
シナリオ 予想される出力 Connect-ExchangeOnline または Connect-IPPSSession コマンドの後で実行します。 1 つの接続情報オブジェクトを返します。 複数 の Connect-ExchangeOnline または Connect-IPPSSession コマンドの後で 実行します。 接続情報オブジェクトのコレクションを返します。 Connect-ExchangeOnline コマンドレットの SkipLoadingFormatData スイッチを使用して、フォーマット データの読み込みを回避し、Connect-ExchangeOnline コマンドをより迅速に実行します。
REST API によってサポートされるコマンドレットには 15 分のタイムアウトがあり、一括操作に影響する可能性があります。 たとえば、次の Update-DistributionGroupMember コマンドを使用して、配布グループの 10,000 人のメンバーを更新すると、タイムアウトになる可能性があります。
$Members = @("member1","member2",...,"member10000") Update-DistributionGroupMember -Identity DG01 -Members $Members
代わりに、 Update-DistributionGroupMember コマンドを使用して更新するメンバーを減らしてから、 Add-DistributionGroupMember コマンドを使用して残りのメンバーを個別に追加します。 例:
Update-DistributionGroupMember -Identity DG01 -Members $Members[0..4999] $Remaining = $Members[-5000..-1] foreach ($Member in $Remaining) { Add-DistributionGroupMember -Identity DG01 -Member $Member }
EXO V3 モジュールの新機能の詳細については、この記事の後半の 「リリース ノート 」セクションを参照してください。
Exchange Online PowerShell モジュールのプレビュー バージョンのバグと問題を報告する
ヒント
モジュールの一般提供 (GA) バージョンの場合は、次のメール アドレスを使用して問題を報告しないでください。 モジュールの GA バージョンに関するメッセージには応答しません。 代わりに、サポート チケットを開きます。
プレビュー バージョンのモジュールの場合のみ、exocmdletpreview[at]service[dot]microsoft[dot]com
を使用して発生する可能性がある問題を報告します。 電子メール メッセージにログ ファイルを含める必要があります。 ログ ファイルを生成するには、 <Path> を出力フォルダーに置き換え、次のコマンドを実行します。
Connect-ExchangeOnline -EnableErrorReporting -LogDirectoryPath <Path> -LogLevel All
Exchange Online PowerShell モジュール内のコマンドレット
EXO モジュールには、Exchange Online PowerShell の一括データ取得シナリオ (数千と数千のオブジェクト) の速度に最適化された 9 つの排他的な Get-EXO* コマンドレットが含まれています。 モジュールの改善されたコマンドレットを次の表に示します。
ヒント
同じウィンドウで PowerShell Exchange Onlineへの複数の接続を開いた場合、Get-EXO* コマンドレットは常に PowerShell 接続の最後 (最新) Exchange Online関連付けられます。 次のコマンドを実行して、 Get-EXO* コマンドレットが実行される REST API セッションを見つけます: Get-ConnectionInformation | Where-Object {$_.ConnectionUsedForInbuiltCmdlets -eq $true}
。
モジュール内の接続関連のコマンドレットを次の表に示します。
EXO モジュール コマンドレット | 古い関連コマンドレット | 注釈 |
---|---|---|
Connect-ExchangeOnline | モジュールの V1 での Connect-EXOPSSession または New-PSSession |
|
Connect-IPPSSession | モジュールの V1 での Connect-IPPSSession | |
Disconnect-ExchangeOnline | Remove-PSSession | |
Get-ConnectionInformation | Get-PSSession | v3.0.0 以降で使用できます。 |
ヒント
単一の PowerShell セッションまたはスクリプトで Connect-ExchangeOnline コマンドレットと Disconnect-ExchangeOnline コマンドレットを頻繁に使用すると、メモリ リークが発生する可能性があります。 この問題を回避する最善の方法は、Connect-ExchangeOnline コマンドレットで CommandName パラメーターを使用して、セッションで使用されるコマンドレットを制限することです。
モジュール内にあるその他のExchange Online機能コマンドレットを次の表に示します。
コマンドレット | 注釈 |
---|---|
Get-DefaultTenantBriefingConfig | v3.2.0 以降で使用できます。 |
Set-DefaultTenantBriefingConfig | v3.2.0 以降で使用できます。 |
Get-DefaultTenantMyAnalyticsFeatureConfig | v3.2.0 以降で使用できます。 |
Set-DefaultTenantMyAnalyticsFeatureConfig | v3.2.0 以降で使用できます。 |
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 以降で使用できます。 |
Get-VivaModuleFeature | v3.2.0 以降で使用できます。 |
Get-VivaModuleFeatureEnablement | v3.2.0 以降で使用できます。 |
Add-VivaModuleFeaturePolicy | v3.2.0 以降で使用できます。 |
Get-VivaModuleFeaturePolicy | v3.2.0 以降で使用できます。 |
Remove-VivaModuleFeaturePolicy | v3.2.0 以降で使用できます。 |
Update-VivaModuleFeaturePolicy | v3.2.0 以降で使用できます。 |
Add-VivaOrgInsightsDelegatedRole | v3.7.0-Preview1 以降で使用できます。 |
Get-VivaOrgInsightsDelegatedRole | v3.7.0-Preview1 以降で使用できます。 |
Remove-VivaOrgInsightsDelegatedRole | v3.7.0-Preview1 以降で使用できます。 |
Exchange Online PowerShell モジュールをインストールして保守する
モジュールは、 https://www.powershellgallery.com/packages/ExchangeOnlineManagement/の PowerShell ギャラリーからダウンロードします。
このセクションの手順では、モジュールをインストール、更新、アンインストールする方法について説明します。
Exchange Online PowerShell モジュールでサポートされているオペレーティング システム
このモジュールは、Windows、Linux、および Apple macOS の PowerShell 7 で正式にサポートされています。
- モジュール バージョン 3.5.1 (2024 年 7 月) 以降には、PowerShell 7 バージョン 7.4.0 (2023 年 11 月) 以降が必要です。 以前のバージョンの PowerShell 7 では、.NET 8.0 アセンブリが不足しているために互換性の問題が発生する可能性があります (v3.5.1 は .NET 8.0 上に構築されています)。
- モジュール バージョン 2.0.4 (2021 年 2 月) から 3.5.0 (2024 年 5 月) は、PowerShell 7 バージョン 7.0.3 (2020 年 7 月) 以降でサポートされています。
PowerShell 7 の詳細については、「 PowerShell とは」を参照してください。
ヒント
モジュールのすべてのバージョンは、Windows PowerShell 5.1 でサポートされ、互換性があります。
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 をインストールした後、次の手順を実行します。
PowerShell をスーパーユーザーとして実行します:
sudo pwsh
PowerShell スーパーユーザー セッションで、次のコマンドを実行します。
Install-Module -Name PSWSMan Install-WSMan
メッセージが表示されたら、PSGallery をコマンドレットのソースとして受け入れます。
これで、通常の PowerShell の前提条件を実行し、Exchange Online PowerShell モジュールをインストールできます。
Linux
このモジュールは、Linux の次のディストリビューションで公式にサポートされています。
- Ubuntu 24.04 LTS
- Ubuntu 20.04 LTS
- Ubuntu 18.04 LTS
Linux に PowerShell 7 をインストールする手順については、「Linux への PowerShell のインストール」を参照してください。
PowerShell 7 をインストールした後、次の手順を実行します。
PowerShell をスーパーユーザーとして実行します:
sudo pwsh
PowerShell スーパーユーザー セッションで、次のコマンドを実行します。
Install-Module -Name PSWSMan Install-WSMan
メッセージが表示されたら、PSGallery をコマンドレットのソースとして受け入れます。
これで、通常の PowerShell の前提条件を実行し、Exchange Online PowerShell モジュールをインストールできます。
注:
プロキシ サーバーの背後にあるネットワークから Linux 上Exchange Online PowerShell に接続する場合は、EXO V3 モジュール (v3.0.0 以降) を使用する必要があります。
Windows
Windows PowerShell 5.1:
- モジュールのすべてのバージョンがサポートされています。
- バージョン 2.0.5 (2021 年 5 月) 以降のバージョンのモジュールでは、Microsoft .NET Framework 4.7.2 以降が接続する必要があります。 それ以外の場合は、
System.Runtime.InteropServices.OSPlatform
エラーが発生します。 .NET Framework 4.7.2 をサポートする Windows のバージョンの詳細については、こちらの記事を参照してください。
ヒント
現在のバージョンの Windows には、必要なバージョンの .NET や.NET Frameworkが含まれているため、Windows PowerShell 5.1 でモジュールを使用するために .NET または.NET Frameworkをインストールする必要はありません。
PowerShell 7:
- モジュール バージョン 3.5.1 (2024 年 7 月) 以降には、PowerShell 7 バージョン 7.4.0 (2023 年 11 月) 以降が必要です。 以前のバージョンの PowerShell 7 では、.NET 8.0 アセンブリが不足しているために互換性の問題が発生する可能性があります (v3.5.1 は .NET 8.0 上に構築されています)。
- モジュール バージョン 2.0.4 (2021 年 2 月) から 3.5.0 (2024 年 5 月) は、PowerShell 7 バージョン 7.0.3 (2020 年 7 月) 以降でサポートされています。
以前のバージョンの Windows でのWindows PowerShell要件とモジュールのサポートについては、次の一覧で説明します。
- Windows 10¹
- Windows 8.1² ²
- Windows Server 2012またはWindows Server 2012 R2² ² ²
- Windows 7 Service Pack 1 (SP1)² ⁴ ⁵
- Windows Server 2008 R2 SP1² ⁴ ⁵
¹ Windows 10 Anniversary Update (2016 年 8 月からバージョン 1607) は、.NET Framework 4.7.2 (Windows PowerShell 5.1 のモジュールの v2.0.5 以降のバージョン) と確実に互換性があるWindows 10の最も古いバージョンです。
² このバージョンの Windows のサポートは終わった。 このバージョンの Windows は、Azure 仮想マシンでのみサポートされています。
このバージョンの Windows の ² PowerShell 7 には、互換性のあるバージョンの .NET Core または .NET ランタイムと、Windows 10ユニバーサル C ランタイム (CRT) が必要です。 このバージョンの Windows で公式にサポートされている PowerShell 7 の最後のバージョンは 7.2 (2024 年 8 月から 7.2.19) です。つまり、PowerShell 7 でサポートされているモジュールの最後のバージョンは v3.5.0 (2024 年 5 月) です。
⁴ このバージョンの Windows でサポートされているモジュールの最新バージョンは v2.0.3 (2020 年 9 月) です。
このバージョンの Windows の ⁵ Windows PowerShell 5.1 には、.NET Framework 4.5 以降とWindows Management Framework 5.1 が必要です。 詳細については、「Windows Management Framework 5.1」を参照してください。
Exchange Online PowerShell モジュールの前提条件
PowerShell 実行ポリシーを RemoteSigned に設定する
ヒント
このセクションの設定は、すべてのオペレーティング システム上のすべてのバージョンの PowerShell に適用されます。
PowerShell を、スクリプトを実行するように構成する必要があります。既定では、スクリプトを実行するように構成されていません。 接続しようとすると、次のエラーが発生します。
このシステムでスクリプトの実行が無効になっているため、ファイルを読み込めません。 ファイルの署名に使用する有効な証明書を指定します。
インターネットからダウンロードしたすべての PowerShell スクリプトに対して信頼できる発行元の署名を要求するには、管理者特権の PowerShell ウィンドウ ([ 管理者として実行] を選択して開いた PowerShell ウィンドウ) で次のコマンドを実行します。
Set-ExecutionPolicy RemoteSigned
実行ポリシーの詳細については、「実行ポリシーについて」を参照してください。
WinRM での基本認証
2023 年 10 月の時点で、REST API 接続は、PowerShell とセキュリティ & コンプライアンス PowerShell の基本認証 (リモート PowerShell) 接続Exchange Online置き換えられました。 REST API 接続では、WinRM での基本認証は必要ありません。
Windows で PowerShellGet が必要
Windows の REST API 接続には、PowerShellGet モジュールが必要です。 依存関係によって、PowerShellGet モジュールには PackageManagement モジュールが必要です。 これらのモジュールの考慮事項は、PowerShell 7 よりも PowerShell 5.1 の方が多いですが、すべてのバージョンの PowerShell では、最新バージョンのモジュールをインストールできるという利点があります。 インストールと更新の手順については、「 Windows への PowerShellGet のインストール」を参照してください。
ヒント
PackageManagement モジュールまたは PowerShellGet モジュールのプレビュー バージョンでは、接続の問題が発生する可能性があります。 接続に問題がある場合は、 Get-InstalledModule PackageManagement -AllVersions; Get-InstalledModule PowerShellGet -AllVersions
コマンドを実行して、モジュールのプレビュー バージョンがインストールされていないことを確認します。
接続しようとしたときに PowerShellGet がインストールされていない場合は、次のエラーが発生します。
コマンドレットが見つかりません Update-Manifest
Exchange Online PowerShell モジュールをインストールする
モジュールを初めてインストールするには、次の手順を実行します。
「PowerShellGetをインストールする」 の説明に従って、PowerShellGet モジュールをインストールまたは更新します。
Windows PowerShell ウィンドウを閉じてもう一度開きます。
これで、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 モジュールを更新する
モジュールが既にコンピューターにインストールされている場合は、このセクションの手順を使用してモジュールを更新できます。
現在インストールされているモジュールのバージョンとインストールされている場所を確認するには、次のコマンドを実行します。
Get-InstalledModule ExchangeOnlineManagement | Format-List Name,Version,InstalledLocation
モジュールが C:\Program Files\WindowsPowerShell\Modules にインストールされている場合は、すべてのユーザーにインストールされます。 モジュールが Documents フォルダーにインストールされている場合は、現在のユーザー アカウントに対してのみインストールされます。
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 を入力してライセンス契約に同意します。
更新が成功したことを確認するには、次のコマンドを実行して、インストールされているモジュールのバージョン情報をチェックします。
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 ウィンドウを閉じてもう一度開きます。
次のエラーが表示されます。
指定された検索条件とモジュール名 'ExchangeOnlineManagement' に一致するものが見つかりませんでした。 使用可能なすべての登録済みモジュール リポジトリを確認するには、
Get-PSRepository
を実行してみてください。PowerShell モジュールの既定のリポジトリは PSGallery に設定されていません。 このエラーを解決するには、次のコマンドを実行します。
Register-PSRepository -Default
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を参照してください。
Exchange Online PowerShell モジュールをアンインストールする
現在インストールされているモジュールのバージョンとインストールされている場所を確認するには、次のコマンドを実行します。
Get-InstalledModule ExchangeOnlineManagement | Format-List Name,Version,InstalledLocation
モジュールが C:\Program Files\WindowsPowerShell\Modules にインストールされている場合は、すべてのユーザーにインストールされました。 モジュールが Documents フォルダーにインストールされている場合は、現在のユーザー アカウントに対してのみインストールされました。
モジュールをアンインストールするには、モジュールを最初にインストールした方法に基づいて、次のいずれかの環境で次のコマンドを実行します (すべてのユーザーと現在のユーザー アカウントの場合のみ)。
管理者特権の PowerShell ウィンドウ (すべてのユーザー)。
通常の PowerShell ウィンドウ (現在のユーザー アカウントの場合のみ)。
Uninstall-Module -Name ExchangeOnlineManagement
詳細な構文とパラメータ情報については、「Uninstall-Module」を参照してください。
Exchange Online PowerShell モジュールのプロパティとプロパティ セット
従来のExchange Online コマンドレットは、多くの空白または興味のないプロパティを含む、すべての可能なオブジェクト プロパティを返します。 この動作により、パフォーマンスが低下します (サーバーの計算量が増え、ネットワーク負荷が増加します)。 コマンドレットの出力では、プロパティの完全な補完が必要になることはほとんどありません。
モジュール の Get-EXO* コマンドレットには、分類された出力プロパティが含まれています。 すべてのプロパティを等しい重要度に設定し、すべてのシナリオで返す代わりに、特定の関連プロパティを プロパティ セットに分類しました。 これらのプロパティ セットは、コマンドレット上の 2 つ以上の関連プロパティのバケットです。
最も大きく、最も使用される Get-EXO* コマンドレットでは、プロパティ セットを使用します。
これらのコマンドレットでは、次のパラメーターによってプロパティ セットが制御されます。
- PropertySets: このパラメーターは、コンマで区切られた 1 つ以上の使用可能なプロパティ セット名を受け取ります。 使用可能なプロパティ セットについては、「Exchange Online PowerShell モジュール コマンドレットのプロパティ セット」を参照してください。
- Properties: コンマで区切られた 1 つ以上のプロパティ名を受け取ります。
同じコマンドで、PropertySets パラメーターと Properties パラメーターを一緒に使うことができます。
また、コマンドレットの出力に必要な最小限のプロパティセット (ID プロパティなど) を含む Minimum プロパティ セットも含まれています。 Minimum プロパティ セットのプロパティについては、PowerShell モジュール コマンドレットのプロパティ セットExchange Online参照してください。
- PropertySetsまたはプロパティを 使用しない場合、プロパティは、自動的に最小プロパティセットに設定されます。
- PropertySets またはプロパティ パラメーターを使用する場合は、指定されたプロパティおよび最小プロパティセットのプロパティ を取得し ます。
いずれの方法でも、コマンドレットの出力に含まれるプロパティははるかに少なく、結果ははるかに高速に返されます。
たとえば、PowerShell Exchange Onlineに接続した後、次の例では、最初の 10 個のメールボックスの Minimum プロパティ セット内のプロパティのみを返します。
Get-EXOMailbox -ResultSize 10
これに対し、同じ Get-Mailbox コマンドの出力では、最初の 10 個のメールボックスごとに少なくとも 230 個のプロパティが返されます。
注:
PropertySets パラメーターが値 All を受け入れるように設定しても、コマンドを実行すると処理速度が遅くなり、信頼性が低下するため、この値を使用してすべてのプロパティを取得することは決してお勧めしません。 シナリオに必要なプロパティの最小数を取得するには、常に PropertySets と Properties パラメーターを使用します。
モジュールでのフィルター処理の詳細については、「Exchange Online PowerShell モジュールのフィルター」を参照してください。
リリース ノート
特に記載がない限り、Exchange Online PowerShell モジュールの現在のリリースには、以前のリリースのすべての機能が含まれています。
現在のリリース
バージョン 3.8.0
Connect-IPPSSession でアクセス トークンを提供するためのサポート。
Get-VivaModuleFeature から ParentFeature、ChildFeature、PolicyModes に関する情報が返されるようになりました。 これらの値は、Viva アプリ機能の親子機能と、将来のポリシーで使用可能な有効化モードを表します。
Add-VivaModuleFeaturePolicy コマンドレットと Update-VivaModuleFeaturePolicy コマンドレットの新しいパラメーター IsUserOptedInByDefault と、すべての *-VivaModuleFeaturePolicy コマンドレットの対応するプロパティ値。 値は、ユーザーが設定しない限り、ユーザーがポリシーによってオプトインまたはオプトアウトされているかどうかを示します。
このパラメーターを使用すると、影響を受けるユーザーを既定でオプトアウトしながら、organizationで機能を有効にしたままにし、それらのユーザーの機能を実質的に論理的に無効にすることができます。
Get-VivaFeatureCategory コマンドレット、すべてのカテゴリ関連パラメーター、および戻り値 (CategoryId、IsCategoryEnabled) が非推奨になりました。
以前のリリース
バージョン 3.7.2
- DisableWAM スイッチは、Connect-ExchangeOnline コマンドレットで使用でき、WAM 関連の接続エラーが発生した場合に Web アカウント マネージャー (WAM) を無効にします。
バージョン 3.7.1
-
Get-EXOMailbox の出力に
ExoExchangeSecurityDescriptor
という名前の新しいプロパティを追加しました。これは、Get-Mailbox の出力のExchangeSecurityDescriptor
プロパティに似ています。 - Viva Org Insights 委任機能をサポートする新しいコマンドレットを追加しました。
- Add-VivaOrgInsightsDelegatedRole
- Get-VivaOrgInsightsDelegatedRole
- Remove-VivaOrgInsightsDelegatedRole
バージョン 3.7.0
- セキュリティを強化するための認証フローでの統合 Web アカウント マネージャー (WAM)。
- Exchange Online PowerShell コマンドレットのコマンド ライン ヘルプは、既定では読み込まれなくなりました。 Connect-ExchangeOnline コマンドで LoadCmdletHelp スイッチを使用して、Exchange Online PowerShell コマンドレットのヘルプを Get-Help コマンドレットで使用できるようにします。
- セキュリティ & コンプライアンス PowerShell でのアプリのみの認証に関する接続の問題を修正しました。
バージョン 3.6.0
- Get-VivaModuleFeature は、機能でポリシーの作成をサポートする ID の種類 (ユーザー、グループ、organization全体など) に関する情報を返すようになりました。
- Viva機能アクセス管理用のコマンドレットで、継続的アクセス評価 (CAE) 要求の課題が処理されるようになりました。
- Microsoft.Graph モジュールとの互換性に関する問題の修正が追加されました。
バージョン 3.5.1
- Get-EXOMailboxPermission と Get-EXOMailbox のバグ修正。
- モジュールは.NET 8 で実行するようにアップグレードされ、.NET 6 に基づいて以前のバージョンが置き換えられます。
- Add-VivaModuleFeaturePolicy の機能強化。
バージョン 3.5.0
- 新しい Get-VivaFeatureCategory コマンドレット。
- Viva機能アクセス管理 (VFAM) のカテゴリ レベルでのポリシー操作のサポートを追加しました。
- Get-VivaModuleFeaturePolicy の出力の新しい IsFeatureEnabledByDefault プロパティ。 このプロパティの値は、organizationまたはユーザー/グループ ポリシーが作成されなかった場合のユーザーの既定の有効化状態を示します。
バージョン 3.4.0
- Connect-ExchangeOnline、Get-EXORecipientPermission、Get-EXOMailboxFolderPermission のバグ修正。
- Connect-ExchangeOnline の SigningCertificate パラメーターで、制約付き言語モード (CLM) がサポートされるようになりました。
バージョン 3.3.0
- コマンドレット ヘルプ ファイルの読み込みをスキップすることをサポートする Connect-ExchangeOnline のSkipLoadingCmdletHelp パラメーター。
- グローバル変数
EXO_LastExecutionStatus
は、最後に実行されたコマンドレットの状態をチェックするために使用できます。 - Connect-ExchangeOnline と Connect-IPPSSession のバグ修正。
- Add-VivaModuleFeaturePolicy および Update-VivaModuleFeaturePolicy の IsUserControlEnabled パラメーターは、Viva機能アクセス管理にオンボードされている機能のポリシーによるユーザー コントロールの有効化をサポートします。
バージョン 3.2.0
- 新しいコマンドレット:
- Get-DefaultTenantBriefingConfig と Set-DefaultTenantBriefingConfig。
- Get-DefaultTenantMyAnalyticsFeatureConfig と Set-DefaultTenantMyAnalyticsFeatureConfig。
- Get-VivaModuleFeature、 Get-VivaModuleFeatureEnablement、 Add-VivaModuleFeaturePolicy、 Get-VivaModuleFeaturePolicy、 Remove-VivaModuleFeaturePolicy、 Update-VivaModuleFeaturePolicy。
- セキュリティ & コンプライアンス PowerShell の REST API 接続のサポート。
-
Get-ConnectionInformation および Disconnect-ExchangeOnline のConnectionId パラメーター:
- 特定の REST API 接続の接続情報を取得します。
- REST API 接続の選択的切断。
- Connect-ExchangeOnline の SigningCertificate パラメーターを使用すると、フォーマット ファイル (*.Connect-ExchangeOnline がすべての PowerShell 実行ポリシーで使用するクライアント証明書を使用して作成する一時モジュール内の Format.ps1xml) またはスクリプト モジュール ファイル (.psm1)。
- Connect-ExchangeOnline のバグ修正。
バージョン 3.1.0
- Connect-ExchangeOnline で使用できる AccessToken パラメーター。
- Connect-ExchangeOnline と Get-ConnectionInformation のバグ修正。
- CertificateThumbprint を使用してセキュリティ & コンプライアンス PowerShell に接続するための Connect-IPPSSession のバグ修正。
バージョン 3.0.0 (v2.0.6-PreviewX と呼ばれるプレビュー バージョン)
- 「 EXO V3 モジュール」セクションの REST API 接続で既に 説明されている機能:
- セキュリティ & コンプライアンス PowerShell (バージョン 2.0.6-Preview5 以降) の証明書ベースの認証。
- REST ベースの接続 (バージョン 2.0.6-Preview7 以降) 用 の Get-ConnectionInformation コマンドレット。
- REST ベースの接続 (バージョン 2.0.6-Preview8 以降) の Connect-ExchangeOnline コマンドレットの SkipLoadingFormatData スイッチ。
- DelegatedOrganization パラメーターは、コマンドで AzureADAuthorizationEndpointUri パラメーターも使用する限り、Connect-IPPSSession コマンドレットで機能します。
- 特定のシナリオで確認を求めた特定のコマンドレットでは、確認が行われません。 既定では、コマンドレットは完了まで実行されます。
- 失敗したコマンドレットの実行から返されるエラーの形式が若干変更されています。 例外により多くのデータ (例外の種類など) が含まれるようになり、
FullyQualifiedErrorId
にはFailureCategory
が含まれません。 エラーの形式は、さらに変更される可能性があります。
バージョン 2.0.5
所有者なしのMicrosoft 365 グループを管理するための新しい Get-OwnerlessGroupPolicy コマンドレットと Set-OwnerlessGroupPolicy コマンドレット。
注:
cmdlets はモジュールで利用できますが、feature は Private Preview のメンバーのみ利用できます。
Viva Insightsの Headspace 機能へのユーザー アクセスを制御するための新しい Get-VivaInsightsSettings コマンドレットと Set-VivaInsightsSettings コマンドレット。
バージョン 2.0.4
PowerShell 7 は、この記事の「Exchange Online PowerShell モジュールの前提条件」セクションで説明されているように、Windows、Linux、および Apple macOS で正式にサポートされています。
PowerShell 7 のモジュールでは、ブラウザー ベースのシングル サインオン (SSO) とその他のサインイン 方法がサポートされています。 詳細については、「 PowerShell 7 排他接続メソッド」を参照してください。
Get-UserAnalyticsConfig コマンドレットと Set-UserAnalyticsConfig コマンドレットは、Get-MyAnalyticsConfig コマンドレットと Set-MyAnalyticsConfig コマンドレットに置き換えられました。 また、機能レベルでアクセスを構成することもできます。 詳細については、「MyAnalytics を構成する」を参照してください。
すべてのユーザー ベースの認証におけるリアルタイム ポリシーとセキュリティの適用。 継続的アクセス評価 (CAE) は、モジュールで有効になっています。 CAE の詳細については、こちらをご覧ください。
Get-EXOMailboxStatistics コマンドレットの出力で LastUserActionTime と LastInteractionTime プロパティを使用できるようになりました。
対話型のサインイン プロセスでは、安全な応答 URL を使用してアクセス トークンを取得できるより安全な方法を使用するようになりました。
バージョン 2.0.3
- 証明書ベースの認証 (CBA) の一般提供は、無人スクリプトやバックグラウンドのオートメーション シナリオで先進認証を使用することができます。 利用可能な証明書の保存場所は次のとおりです。
- Azure Key 値 ( 証明書) パラメーターにあるリモート。 このオプションでは、実行時にのみ証明書を取得してセキュリティを強化します。
- CurrentUser または LocalMachine 証明書ストアのローカル ( CertificateThumbprint パラメーター)。
- エクスポートされた証明書ファイル (CertificateFilePath と CertificatePasswordパラメーター) にあるローカル。 詳細については、「Exchange Online PowerShell モジュールの無人スクリプトのConnect-ExchangeOnline およびアプリ専用認証」のパラメーターの説明を参照してください。
- 1つの PowerShell ウィンドウで Exchange Online PowerShell とセキュリティ/コンプライアンス PowerShell に同時に接続します。
- 新しいCommandName パラメーターを使用すると、セッションにインポートされた Exchange Online PowerShell コマンドレットを指定して制限できます。 このオプションでは、使用頻度の高い PowerShell アプリケーションのメモリの消費量を削減します。
- Get-EXOMailboxFolderPermissionは、Identity パラメーターで ExternalDirectoryObjectID をサポートするようになりました。
- 最初の V2 コマンドレット呼び出しの最適化された待機時間。 ラボの結果は、最初の呼び出し待機時間が 8 秒から約 1 秒に減少したことを示しています。 実際の結果は、コマンドレットの結果のサイズとorganization環境によって異なります。
バージョン 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-UserBriefingConfig と Get-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
)。 - クライアント例外でコマンドレットを終了する
- リモート PowerShell には、パフォーマンスを向上させるために EXO コマンドレットで意図的にサポートされていないさまざまな複雑なデータ型が含まれていました。 リモート PowerShell コマンドレットと V2 コマンドレットの間の非複雑なデータ型の違いは、管理スクリプトのシームレスな移行を可能にするために解決されます。
バージョン 0.3582.0
- セッション作成時のプレフィックスのサポート:
- プレフィックス付きコマンドレットを含むセッションは一度に 1 つだけ作成できます。
- EXO V2 コマンドレットにはプレフィックス EXO が既に含まれているため、プレフィックスとして
EXO
を使用しないでください。
- クライアントコンピューターで WinRM 基本認証が無効になっていても、EXO V2 コマンドレットを使用します。 リモート PowerShell 接続には WinRM Basic Auth が必要であり、WinRM で Basic Auth が無効になっている場合、リモート PowerShell コマンドレットは使用できません。
- V2 コマンドレットの ID パラメーターで Name と Alias がサポートされるようになりました。 Alias または Name を使用すると、V2 コマンドレットのパフォーマンスが低下するため、使用しないことをお勧めします。
- V2 コマンドレットによって返される属性のデータ型がリモート PowerShell コマンドレットとは異なる問題が修正されました。 データ型が異なる属性はまだ少なく、今後数か月以内に処理する予定です。
- 修正されたバグ: 資格情報または UserPrincipalName を使用して Connect-ExchangeOnline が呼び出されたときにセッションが頻繁に再接続される問題を修正しました
バージョン 0.3555.1
- 認証の問題が原因で、パイプ処理されたコマンドレットが次のエラーで失敗したバグが修正されました。
実行スペースが [開いている] 状態ではないので、パイプラインを呼び出すことはできません。 実行空間の現在の状態は ' Closed ' です。
バージョン 0.3527.4
- 更新された Get-help コンテンツ。
- エラー コード 400 で Online パラメーターが存在しないページにリダイレクトされていた Get-Help の問題を修正しました。
バージョン 0.3527.3
- 委任フローを使用して別のorganizationの Exchange を管理するためのサポートを追加しました。
- 1 つの PowerShell ウィンドウで他の PowerShell モジュールと連携して動作します。
- 位置パラメーターのサポートが追加されました。
- "日付/時刻フィールド" は、クライアントのロケールをサポートするようになりました。
- バグ修正: Connect-ExchangeOnlineの実行中に PSCredential が空になりました。
- バグ修正: フィルターに $null が含まれているときに、クライアントモジュールでエラーが発生しました。
- EXO V2 モジュール内に作成されたセッションに、名前を付けることができます (名前付けパターン: ExchangeOnlineInternalSession_% SomeNumber%)。
- バグ修正: トークンの有効期限とセッションのアイドル状態の差が原因で、リモート PowerShell コマンドレットが断続的に失敗する。
- 主要なセキュリティ更新
- バグの修正と強化された機能