Microsoft 365 PowerShell への接続方法

Microsoft 365 の管理には PowerShell が欠かせません。

Microsoft 365 には用途別に複数の PowerShell モジュールがあり、「どれを使えばいいの?」と迷う方も少なくありません。

この記事では、主要モジュールの違いや使い分けを体系的にまとめます!

1.Microsoft 365 PowerShell には大きく分けて 3系統ある

Microsoft 365 管理用の PowerShell には以下の 3種類あります。

1.1. Microsoft Graph PowerShell(現在の主流)

Microsoft 365 全体を横断的に管理できる唯一の「統合 API」モジュールです。
AzureAD / MSOnline はすでに非推奨で、Microsoft Graph への移行が公式案内です。

ユーザー管理・グループ・Teams・Intune・ライセンスなど M365全領域を網羅してます。


1.2. 各サービス個別のモジュール

昔からある “サービス単位” の管理モジュールです。
現在も利用されますが、徐々に Graph に置き換えられているものもあります。

  • Microsoft Entra PowerShell
  • Exchange Online PowerShell
  • Teams PowerShell
  • SharePoint Online Management Shell
  • Security & Compliance PowerShell
  • PnP PowerShell(コミュニティによる PowerShell モジュール)


1.3. 廃止済みのモジュール

次のモジュールはすでに廃止済みのものです。

  • Azure AD PowerShell モジュール(AzureAD / AzureADPreview)
  • MSOnline(Msol)モジュール


2.モジュールの使い分け

モジュール名管理対象特徴・出来ること
Microsoft Graph PowerShellMicrosoft 365 全体(Entra、Exchange、Teams、SharePoint、Intune等)組織横断の自動化、外部システム連携、広範な M365 データ取得、監査ログ取得等
Microsoft Entra PowerShellEntra ID(ユーザー、グループ、アプリ、デバイス等)ユーザー管理、グループ管理、認証・ID 管理
Exchange Online PowerShellExchange Online(メールボックス、配布グループ、トランスポートルール等)Graph でも一部対応してるが、専用モジュールの方が高機能
Teams PowerShellMicrosoft Teams(チーム、チャネル、ポリシー、通話設定等)Graph でも一部対応してるが、専用モジュールの方が高機能
SharePoint Online Management ShellSharePoint Online 全体のテナント設定テナントレベルの設定が可能
コンテンツ(リスト/ライブラリ等)操作は PnP の方が高機能
Security & Compliance PowerShell情報保護、DLP、監査、電子情報開示EXO モジュールを利用
Graph でも一部対応してるが、専用モジュールの方が高機能
PnP PowerShellSharePoint Online のサイト構築、リスト操作、ページ管理、モダンサイト設計、サイト移行に強いコンテンツ操作が可能(リスト/ライブラリ/権限等)
公式 SPO モジュールより高機能



3.モジュールの導入方法

3.1. Microsoft Graph PowerShell

# Microsoft Graph のインストール
Install-Module Microsoft.Graph
# 接続例
Connect-MgGraph -Scopes "User.ReadWrite.All","Directory.ReadWrite.All"
Connect-MgGraph -Scopes "User.ReadWrite.All","Group.ReadWrite.All"

3.2. Microsoft Entra PowerShell

# Entra モジュールのインストール
Install-Module -Name Microsoft.Entra -Repository PSGallery -Force -AllowClobber
# 接続例
Connect-Entra -Scopes "User.ReadWrite.All"

3.3. Exchange Online PowerShell

# EXO V3 モジュールのインストール
Install-Module -Name ExchangeOnlineManagement
# 接続
Connect-ExchangeOnline

# 切断
Disconnect-ExchangeOnline

3.4. Teams PowerShell

# Teams モジュールのインストール
Install-Module -Name MicrosoftTeams -Force -AllowClobber
# 接続
Connect-MicrosoftTeams

3.5. SharePoint Online PowerShell

# SharePoint モジュールのインストール(PowerShell 5.1 で実行)
Install-Module -Name Microsoft.Online.SharePoint.PowerShell

# モジュールをインポート(PowerShell 7 を利用する場合)
Import-Module Microsoft.Online.SharePoint.PowerShell -UseWindowsPowerShell
# 接続
Connect-SPOService -Url https://<テナント名>-admin.sharepoint.com

# 切断
Disconnect-SPOService

3.6. Security & Compliance PowerShell

# EXO V3 モジュールのインストール(Exchange Onlineのモジュールを使用)
Install-Module -Name ExchangeOnlineManagement
# 接続
Connect-IPPSSession

# 切断
Disconnect-ExchangeOnline

3.7. PnP PowerShell

詳細はSharePointのリストをPowerShellで他のサイトに移行するを参照

# PnP PowerShell モジュールのインストール
Install-Module -Name PnP.PowerShell
# 接続
$siteUrl = "https://<tenant>.sharepoint.com/sites/<SiteName>"
$clientId = "<アプリの Client ID>"
Connect-PnPOnline -Url $siteUrl -Interactive -ClientId $clientId

# 切断
Disconnect-PnPOnline

コメント

タイトルとURLをコピーしました