PowerShellを使用してExchange Onlineに接続する方法

Exchange Online PowerShellは、Exchange Onlineのメールボックスやユーザーを管理するためのコマンドラインツールです。メールボックスの作成や管理、メールフローのルールの設定、ユーザー権限の管理など、さまざまなタスクを実行するために使用できます。このガイドでは、Exchange Online PowerShellをインストールして接続する方法を紹介します。Exchange OnlineサービスでのMicrosoft 365管理業務を担当するITプロの方におすすめです!

Exchange Online PowerShellのインストールと接続方法

ITプロとして、Microsoft 365の管理業務にはおそらくExchange Onlineが含まれています。これらのタスクの大部分はExchange管理センターウェブサイトを使用して達成できますが、特にスクリプトを使用する場合など、コマンドラインを介した効率的な作業が可能です!

広告

前提条件

Exchange Onlineは、標準のConnect-* cmdletを使用して、他のOffice 365サービスと同様に接続できます。ただし、Exchange Online PowerShellをインストールおよび利用する際にはいくつかの前提条件を心に留めておく必要があります。

これらのモジュールには、これまでにいくつかのバージョンがあります。バージョン2.0.5およびそれ以前は、Exchange Online PowerShell V2モジュール(EXO V2)と呼ばれています。バージョン3.0.0以降は、Exchange Online PowerShell V3モジュール(EXO V3)として知られています。

この新しいモジュールに焦点を当て、マルチファクタ認証(MFA)をサポートしているため、前身よりもパフォーマンスが向上しており、より安全です!さらに、最新のPowerShell Version 7.xバージョンでサポートされています。さらに、新しいcmdlet(EXO-*)のホストを使用すると、ITプロが仕事を迅速かつ効果的に行うことができます。

‘Install-Module’を使用してEchange Online PowerShellモジュールをインストールする

私が述べたように、この記事の残りの部分では最新の「V3」モジュールに焦点を当てます。特定のコンピューターで以前に完了した手順に基づいて、2つから3つの主要な手順を実行する可能性があります。手順を個別に説明していきますので、環境に基づいてすぐに取り掛かることができます。

広告

I am working on a Windows 11 22H2 virtual machine (VM) in my Hyper-V lab. This machine is Azure-AD joined to my Microsoft 365 Developer tenant. This will allow me to show you the procedure and also include some basic commands at the end of this article to demonstrate how it operates.

I am using the latest version of PowerShell, version 7.3.4, at the time of writing. This will enable me to install the Exchange Online PowerShell module. All I need is a PowerShell window!

  • 最初に行うべき手順は、実行ポリシーを設定することです。Set-ExecutionPolicyコマンドレットを使用してポリシー設定を変更する必要があります。
Set-ExecutionPolicy RemoteSigned
  • 次に、Get-Moduleコマンドを実行して、インストールされているモジュールを確認します。
Get-Module
Running Get-Module to see what modules are installed (Image credit: Petri/Michael Reinders)
  • I have only the base set of modules installed on my computer. So, I need to install the ‘ExchangeOnlineManagement‘ module. Let’s do this with the Install-Module command:
Install-Module -Name ExchangeOnlineManagement
Running Connect-ExchangeOnline to connect to my tenant (Image credit: Petri/Michael Reinders)

注意:「信頼されていないリポジトリ」を使用しているため、このリポジトリからダウンロードすることを指定する必要があります。 ‘PSGallery’ リポジトリからダウンロードすることを選択するために ‘A’ を入力しました。

‘Import-Module’を使用してモジュールを読み込みます。

次に、モジュールを読み込むという次の主要なステップを実行しましょう。

広告

  • Import-Moduleコマンドを使用してモジュールをインポートできます。
  • 次に、別のGet-Moduleコマンドを実行して確認できます。
Import-Module ExchangeOnlineManagement
After importing the module, we confirm it is installed and loaded (Image credit: Petri/Michael Reinders)

これで、モジュールが準備完了であることを確認しました!

‘Connect-ExchangeOnline’を使用してExchange Onlineテナントに接続します。

テナントのExchange Online情報にアクセスするために完了する最後のステップは、そのアクセスを許可する資格情報を使用して接続を行うことです。これを許可するいくつかのロールレベルがAzureにあります。この目的のために、私は開発者テナントの一部として私のグローバル管理者ロールを使用します。このアカウントロールは、偶然にも、Azure ADおよびすべてのMicrosoft 365サービスへのフルアクセスをPowerShell経由で提供します。

Connect-ExchangeOnline -userprincipalname
Connecting to my tenant prompts in-browser authentication (Image credit: Petri/Michael Reinders)
  • ブラウザ認証ウィンドウが開き、ユーザー名とパスワードを求められます。ここで、私のグローバル管理者アカウントでログインできます。
We’re connected and ready to enter cmdlets (Image credit: Petri/Michael Reinders)

素晴らしい! ‘EXO V3’モジュールを説明する黄色のテキストと、詳細情報を取得するためのドキュメントリンクが表示されます。

これで、Exchange Onlineテナントに対してPowerShell cmdletを実行する能力が得られました。次に始めるための基本的/必須のコマンドについて説明します。

注意: 常にセキュリティを考慮している場合、作業が終了したらセッションを終了するのが最善です。シェルを閉じる前に次のコマンドを実行してセッションを切断することが可能です。

Disconnect-ExchangeOnline

簡単ですね!

基本的なExchange Online PowerShellコマンド

Exchange Online Version 3 Powershellモジュール(EXO V3)に接続したら、Exchange Onlineのコマンドレットを実行できます。まず、テナント内のすべてのメールボックスをリストアップしましょう。

これは開発者向けのテナントなので、リストはかなり小さいです。通常の大規模な環境では、出力はあまり役に立たないかもしれません。少し後でその点に触れます。さらに、お手伝いできるPetriのさまざまなPowerShell記事があります。

代替して「レガシー」Get-Mailbox cmdlet(廃止予定)を使用する代わりに、EXO V3の新しいコマンドをお見せしましょう。ここでは、Get-EXOMailboxコマンドを使用して、それを「ft」スイッチ(「Format-Table」と同じ)にパイプ(|)します。 「Autosize」スイッチを使用すると、列の幅がコンソールウィンドウに合わせて自動的にフォーマットされます。

Get-EXOMailbox | ft -Autosize
Using Get-EXOMailbox to list our mailboxes (Image credit: Petri/Michael Reinders)

デフォルトでは、「ExternalDirectoryObjectId」、「UserPrincipalName」(通常はメールアドレス)、およびメールエイリアスを取得します。もう少し情報を取得するように依頼しましょう。

Get-EXOMailbox | Select DisplayName,PrimarySMTPAddress,Alias
Listing additional attributes with the ‘Select’ command (Image credit: Petri/Michael Reinders)

これにより、やや有用な情報が得られますね? さて、Get-EXOMailboxStatisticsコマンドでメールボックスのサイズ統計を取得しましょう。ここでは、最初のコマンドを実行してすべてのメールボックスを収集し、それをデフォルトの属性で「Get-EXOMailboxStatistics」にパイプし、再度「ft」を使用して整形します。

Get-EXOMailbox | Get-EXOMailboxStatistics | ft
Mailbox statistics are a cmdlet away – Get-EXOMailboxStatistics (Image credit: Petri/Michael Reinders)

これにより、組織のアイテム数とメールボックスのサイズに関するかなりの情報が得られます。 アカウントとメールボックスから特定の属性を取得するために使用できる他の多くのパラメータがあります。

Exchange OnlineにPowerShellを使用してMFAで接続する方法は?

幸いなことに、アカウントが多要素認証で保護されている場合に接続するために特別なことをする必要はありません(そうであるべきです!)。 コマンドを入力し、PowerShell 7以上を使用している場合、スクリーンショットで示したブラウザベースの認証画面が表示されます。

PowerShell 5.1以下を使用している場合、標準のモダン認証ウィンドウが開き、パスワードを入力してMFAリクエストを完了する必要があります。

MacでExchange Online PowerShellに接続できますか?

MacにPowerShellをインストールする方法は複数ありますが、最も簡単な方法は、Microsoftのウェブサイトから直接ダウンロードリンクを使用することです。 バージョン7.2以降、PowerShellはApple Silicon Macをサポートしています。

PowerShellをMacにインストールしたら、macOS 11 Big Sur以降を実行している場合、上記の手順を使用してmacOSでExchange Onlineに接続できます。

Exchange Online PowerShellの追加の利点

Exchange Online PowerShellは、Exchange Online環境をより効果的に管理したいすべてのITプロ/管理者にとって貴重なツールです。

Exchange Online PowerShellの追加の利点は次のとおりです:

  • Powershellスクリプトを使用してプロセスを自動化するために使用でき、スクリプトで時間と労力を節約できます。
  • 問題のトラブルシューティングに使用でき、問題をより迅速に解決できます。
  • Exchange Online環境をカスタマイズして、より効率的でユーザーフレンドリーにすることができます。

ご質問やコメントがある場合は、以下にコメントを残してください。お読みいただきありがとうございます!

Source:
https://petri.com/connect-to-exchange-online-powershell/