単一の PowerShell ウィンドウですべての Microsoft 365 サービスに接続する

PowerShell を使用して Microsoft 365 を管理する場合は、同時に複数の PowerShell セッションを開くことができます。 ユーザー アカウント、SharePoint Online、Exchange Online、Microsoft Teams、Microsoft Defender for Office 365 の機能 (セキュリティ)、および Microsoft Purview コンプライアンス機能を管理するためのさまざまな PowerShell ウィンドウがある場合があります。

このシナリオでは、サービス間管理のためにウィンドウ間でデータを交換できないため、Microsoft 365 の管理に最適な状況ではありません。 この記事では、PowerShell の単一インスタンスを使用して、Microsoft 365 アカウント、Exchange Online、SharePoint Online、Microsoft Teams、Defender for Office 365 Microsoft Purview コンプライアンスの機能を管理する方法について説明します。

注:

この記事には現在、ワールドワイド (+ GCC) クラウドに接続するコマンドのみ含まれています。 メモでは、他の Microsoft 365 クラウドへの接続に関する記事へのリンクを提供しています。

開始する前に

PowerShell の単一のインスタンスからすべての Microsoft 365 を管理する前に、次の前提条件を考慮してください。

  • Microsoft 365 の職場または学校のアカウントは、Microsoft 365 管理者ロールのメンバーである必要があります。 詳細については、「管理者の役割について」 を参照してください。 これは Microsoft 365向け PowerShell の要件ではあるものの、他のすべての Microsoft 365 サービスについては必ずしも当てはまりません。

  • 次の Windows の 64 ビット バージョンを使用できます。

    • Windows 11

    • Windows 10

    • Windows 8.1 または Windows 8

    • Windows Server 2019

    • Windows Server 2016

    • Windows Server 2012 R2 または Windows Server 2012

    • Windows 7 Service Pack 1 (SP1)*

    • Windows Server 2008 R2 SP1*

      * Microsoft .NET Framework 4.5 をインストールする必要があります。x をクリックし、3.0 または 4.0 をWindows Management Frameworkします。 詳細については、 Windows Management Framework を参照してください。

  • Microsoft Entra ID、Exchange Online、Defender for Office 365、Microsoft Purview コンプライアンス、SharePoint Online、Teams に必要なモジュールをインストールする必要があります。

  • Exchange Online、Defender for Office 365、および Microsoft Purview コンプライアンスの署名済みスクリプトを実行するように PowerShell を構成する必要があります。 管理者特権の PowerShell セッション (管理者として実行する PowerShell セッション) で、次のコマンドを実行します。

    Set-ExecutionPolicy RemoteSigned
    

接続手順

1 つの PowerShell ウィンドウですべてのサービスに接続するには、次の手順に従います。

  1. Windows PowerShell を開きます。

  2. 次のコマンドを実行し、Microsoft 365職場または学校のアカウントの資格情報を入力します。

    $credential = Get-Credential
    
  3. このコマンドを実行して、Microsoft Graph PowerShell SDK を使用してMicrosoft Entra IDに接続します。

    注:

    Azure Active Directory (AzureAD) PowerShell モジュールは非推奨となり、Microsoft Graph PowerShell SDK に置き換えられます。 Microsoft Graph PowerShell SDK を使用して、すべての Microsoft Graph API にアクセスできます。 詳細については、「Microsoft Graph PowerShell SDK の使用を開始する」 を参照してください。

    Microsoft Graph PowerShell のインストールと Microsoft Graph PowerShell へのアップグレードの方法については、「Microsoft Graph PowerShell SDK のインストール」と「 Azure AD PowerShell から Microsoft Graph PowerShell へのアップグレード」も参照してください。

    Microsoft Graph PowerShell SDK では、委任されたアクセスとアプリ専用アクセスの 2 種類の認証がサポートされています。 この例では、委任されたアクセスを使用してユーザーとしてサインインし、SDK に同意してユーザーに代わって動作させ、Microsoft Graph を呼び出します。

    無人シナリオでアプリ専用アクセスを使用する方法の詳細については、「 Microsoft Graph PowerShell SDK でアプリのみの認証を使用する」を参照してください。

    必要なアクセス許可スコープを決定する

    Microsoft Graph の各 API は、1 つ以上のアクセス許可スコープによって保護されています。 ユーザーログインは、使用する予定の API に必要なスコープのいずれかに同意する必要があります。 この例では、次の API を使用します。

    • ユーザーを一覧表示して、ログインユーザーのユーザー ID を見つけます。
    • joinedTeams を一覧表示して、ユーザーがメンバーである Teams を取得します。
    • チャネルを一覧表示して、チーム内のチャネルを取得します。
    • メッセージを送信して、チームのチャネルにメッセージを送信します。

    User.Read.All アクセス許可スコープでは、最初の 2 つの呼び出しが有効になり、Group.ReadWrite.All スコープで残りの部分が有効になります。 これらのアクセス許可には管理者アカウントが必要です。

    必要なアクセス許可スコープを決定する方法の詳細については、「 Find-MgGraphCommand の使用」を参照してください。

    Microsoft Graph への接続

    Microsoft 365 Organization に接続するには、アクセス許可スコープの例を使用して次のコマンドを実行します。

    Connect-MgGraph -Scopes "User.Read.All","Group.ReadWrite.All"
    

    コマンドを実行すると、Web ページに移動して資格情報でサインインするように求められます。 完了すると、コマンドは Microsoft Graph へようこそ! メッセージで成功したことを示します。 サインインする必要があるのは、セッションごとに 1 回だけです。 コマンドレットへの資格情報の Connect-MgGraph 渡しは現在サポートされていません。

    ヒント

    新しいアクセス許可スコープで Connect-MgGraph コマンドを繰り返すことで、アクセス許可を追加できます。

  4. 次のコマンドを実行して、SharePoint Online に接続します。 ドメインの組織名を指定します。 たとえば、"litwareinc.onmicrosoft.com" の場合、organization名の値は "litwareinc" です。

    $orgName="<for example, litwareinc for litwareinc.onmicrosoft.com>"
    Import-Module Microsoft.Online.SharePoint.PowerShell -DisableNameChecking
    Connect-SPOService -Url https://$orgName-admin.sharepoint.com -Credential $Credential
    
  5. 次のコマンドを実行して、Exchange Online に接続します。

    Import-Module ExchangeOnlineManagement
    Connect-ExchangeOnline -ShowProgress $true
    

    注:

    全世界以外の Exchange Online for Microsoft 365 クラウドに接続するには、「Exchange Online PowerShell に接続する」をご覧ください。

  6. これらのコマンドを実行して、セキュリティ & コンプライアンス PowerShell に接続します。

    $acctName="<UPN of the account, such as belindan@litwareinc.onmicrosoft.com>"
    Connect-IPPSSession -UserPrincipalName $acctName
    

    注:

    ワールドワイド以外でセキュリティ & コンプライアンス PowerShell for Microsoft 365 に接続するために、「セキュリティ & コンプライアンス PowerShell への接続」を参照してください。

  7. 次のコマンドを実行して、Teams PowerShell に接続します。

    Import-Module MicrosoftTeams
    $credential = Get-Credential
    Connect-MicrosoftTeams -Credential $credential
    

    注:

    Skype for Business Online Connector は現在、最新の Teams PowerShell モジュールに含まれています。 最新の Teams PowerShell パブリック リリースをご利用の場合は、Skype for Business Online Connector をインストールする必要はありません。

    全世界以外の Microsoft Teams クラウドに接続する方法については、「Connect-MicrosoftTeams」を参照してください。

PowerShell ウィンドウを閉じる

PowerShell ウィンドウを閉じるには、次のコマンドを実行して、SharePoint Online、Teams、Defender for Office 365、および Microsoft Purview コンプライアンスへのアクティブなセッションを削除します。

Disconnect-SPOService; Disconnect-MicrosoftTeams; Disconnect-ExchangeOnline

関連項目