PowerShellを使用してOffice365に接続することは、時には苦痛になることがあります。 あなたは常に異なるコマンドやモジュールを覚えておく必要があります。 それを変えましょう。
この記事では、PowerShellを使用してOffice365に接続する方法について説明します。 これを行うには、Azure AD PowerShell For GraphモジュールとAzure Active Directoryモジュールfor Windows PowerShellを使用します。
目次
前提条件
このチュートリアルのいずれかの例を実行するには、事前に次のことを確認してください:
- Windows PowerShell5.1(これはWindows7以降に既定でインストールされます)
- Office365テナント
- MICROSOFT Online Services SIGN-In Assistant FOR IT Professionals RTW
Azure ADモジュールが二つあるのはなぜですか?
PowerShellを使用してOffice365を操作する場合は、おそらく二つの異なるモジュールを使用する必要があります。 Azure Active Directory PowerShell For Graphをモジュール名AzureADで使用し、Azure Active Directory module for Windows PowerShellをモジュール名MSOnlineで使用します。
AzureADとMSOnlineの両方を使用すると、PowerShellを使用してOffice365サービスを操作できます。 AzureADはMSOnlineの後継者であり、私が集めることができるものから、ある時点でMSOnlineを置き換えるでしょう。 すべての新機能はAzureADモジュールにありますが、MSOnlineモジュールとはまだ重複しています。
MSOnlineモジュールには、ユーザー、グループ、ライセンス管理の管理などのタスクがまだ存在しています。
AzureADモジュールを使用してOffice365に接続する
Azureadモジュールを使用してPowerShellを使用してOffice355に接続するには、最初にインストールする必要があります。 これを行うには、管理PowerShellセッションからInstall-Module AzureAD
を実行します。
AzureADモジュール内のすべてのコマンドのすべての名詞は、AzureADの接頭辞を付けられています。
モジュールをインストールしたら、Connect-AzureAD
コマンドレットを実行します。 これを行うと、PowerShellはMicrosoft IDとパスワード(職場または学校のアカウント)の入力を求めます。 認証されると、モジュール内のすべてのコマンドを使用できるようになります。
MSOnlineモジュールを使用してOffice365に接続する
Msonlineモジュールを使用してPowerShellを使用してOffice365に接続するには、もう少し労力が必要です。 Microsoft Online Services SIGN-In Assistant FOR IT Professionals RTWソフトウェアパッケージがインストールされていると仮定します:
- 管理PowerShellコンソールから実行して、PowerShellギャラリーからMSOnlineモジュールをインストールします。
Install-Module MSOnline
2. モジュールがインストールされたら、Get-Module
を実行して、PowerShellがモジュールを見つけることができるようにします。
3. 最後に、Connect-MsolService
コマンドレットを実行してAzure ADを認証します。 これにより、Office365の資格情報の入力が求められます。
上記のように
Connect-MsolService
を単独で実行する代わりに、Credential
パラメータを使用することもできます。 これは、すでに$cred
変数でキャプチャしているためです。 これにより、認証ポップアップボックスが表示されなくなります。
PowerShellを使用してOffice365(Exchange)に接続する
Exchange Onlineに接続する必要がある場合は、一つの手順を実行する必要があります。 すべてのExchange Onlineコマンドを使用可能にするには、PowerShellの暗黙的なリモート処理セッションを確立する必要があります。
以下に、資格情報を作成し、セッションを構築し、コマンドを現在のセッションにインポートするPowerShellコードがあります。
関連:PowerShell Remoting:The Ultimate Guide
以下のコードスニペットは、Get-Credential
コマンドレットを使用してOffice365のユーザー名とパスワードを資格情報オブジェクトに格納します。 次に、その資格情報を使用してPowerShellリモート処理セッションをExchange URIに確立し、リモートセッションをローカルセッションにインポートします。
Implicit remotingは、リモートコマンドをローカルセッションにインポートすることを指す用語です。
PS> $cred = Get-CredentialPS> $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $cred -Authentication Basic -AllowRedirectionPS> Import-PSSession $Session -DisableNameChecking
セッションのインポートがエラーメッセージなしでうまくいく場合は、Get-AcceptedDomain
を実行してドメインが表示されるようにします。
完了したら、Remove-PSSession $Session
を実行してPSsessionを切断して削除します。
MFA経由でExchange Onlineに接続する必要がある場合、Microsoftは”多要素認証を使用したExchange Online PowerShellへの接続”という優れたガイドを提供しています。
概要
Office365には多くのサービスがありますが、幸いなことに、PowerShellでそれらをすべて管理できます。 両方のモジュールをインストールし、Connect
コマンドを使用して接続したら、PowerShellを使用してOffice365を管理する方法になります!