【Copilot】CopilotライセンスをユーザーグループにPowerShellで一括割当する手順と効率運用

【Copilot】CopilotライセンスをユーザーグループにPowerShellで一括割当する手順と効率運用
🛡️ 超解決

Microsoft 365 Copilotの利用にはライセンスが必要です。多数のユーザーにライセンスを配布する場合、一人ひとりに割り当てるのは非効率です。ユーザーグループに対して一括でライセンスを割り当てたいとお考えではありませんか?本記事では、PowerShellを使用してCopilotライセンスをユーザーグループに一括で割り当てる手順を解説します。これにより、ライセンス管理の手間を大幅に削減できます。

Copilotライセンスをユーザーグループに一括で割り当てることで、管理者はライセンス管理の負担を軽減できます。この自動化されたプロセスは、新規ユーザーのオンボーディングや、ライセンス変更時の対応を迅速化させます。本記事を読むことで、PowerShellを使った効率的なライセンス管理が可能になります。

【要点】Copilotライセンスをユーザーグループへ一括割当する

  • Microsoft 365管理センター: Copilotライセンスの購入と確認を行う。
  • Azure AD PowerShellモジュール: ユーザーグループとライセンス情報を取得・操作する。
  • PowerShellスクリプト: グループメンバーにライセンスを自動で割り当てる。

ADVERTISEMENT

Copilotライセンスの準備と前提条件

Copilotライセンスをユーザーグループに割り当てるには、いくつかの準備が必要です。まず、Microsoft 365管理センターでCopilotライセンスが購入済みであることを確認してください。次に、PowerShellで操作を行うための環境を整えます。これには、Azure Active Directory PowerShellモジュール(Microsoft Graph PowerShell SDK推奨)のインストールと、管理者権限での接続が必要です。

ライセンスの割当は、Azure ADのグループに対して行います。対象となるグループが既に存在し、メンバーが適切に管理されていることが前提です。ライセンスの種類(例:Copilot for Microsoft 365)を正確に把握しておくことも重要です。これにより、スクリプト実行時のエラーを防ぎ、意図した通りのライセンス割当が可能になります。

Copilotライセンスをユーザーグループに一括割当する手順

このセクションでは、PowerShellを使用してCopilotライセンスをユーザーグループに一括で割り当てる具体的な手順を解説します。管理者権限を持つアカウントで実行してください。

  1. Azure AD PowerShellモジュールをインストールする
    まだインストールしていない場合は、管理者としてPowerShellを開き、以下のコマンドを実行してMicrosoft Graph PowerShell SDKをインストールします。

    Install-Module Microsoft.Graph -Scope CurrentUser

  2. Microsoft Graphに接続する
    インストール後、管理者権限でMicrosoft Graphに接続します。Copilotライセンス管理に必要なスコープを指定してください。

    Connect-MgGraph -Scopes “Group.ReadWrite.All”, “User.ReadWrite.All”, “Organization.Read.All”

  3. 対象のユーザーグループを取得する
    ライセンスを割り当てたいユーザーグループのObject ID(またはDisplay Name)を取得します。Object IDで指定する方が確実です。

    $GroupName = “対象グループ名”
    $Group = Get-MgGroup -Filter “DisplayName eq ‘$GroupName'”

  4. CopilotライセンスのSKU IDを取得する
    Copilot for Microsoft 365のサービスプラン(SKU)IDを取得します。これは、ライセンスをプログラムで割り当てる際に必要です。

    $SkuId = “< Copilot for Microsoft 365 のSKU ID >”
    # 例: $SkuId = “66015b47-d00e-4f7a-9f4a-e1027c0281c5” (これは例であり、実際のSKU IDは異なる場合があります)

    SKU IDは、Microsoft 365管理センターの「課金情報」→「ライセンス」で確認するか、PowerShellで以下のコマンドを実行して取得できます。

    Get-MgSubscribedSku | Select-Object SkuId, SkuPartNumber

  5. グループメンバーにライセンスを割り当てる
    取得したグループObject IDとSKU IDを使用して、グループメンバーにライセンスを割り当てます。この操作は、グループのメンバーシップ変更時に自動で同期されるわけではありません。手動で実行するか、定期実行のスクリプトとして構成する必要があります。

    $GroupId = $Group.Id
    $AddLicenses = @(
    @{SkuId = $SkuId}
    )

    # ライセンスを割り当てるコマンド(グループ単位ではなく、個々のユーザーに割り当てる形になります)
    # このコマンドは、グループメンバー全員にライセンスを割り当てるためのループ処理を別途記述する必要があります。
    # 以下は、個々のユーザーにライセンスを割り当てる例です。
    $Members = Get-MgGroupMember -GroupId $GroupId -All

    foreach ($member in $Members) {
    # 既にライセンスが付与されているか確認 (省略)

    $AddLicenseBody = @{
    AddLicenses = $AddLicenses
    RemoveLicenses = @()
    }

    try {
    Set-MgUserLicense -UserId $member.Id -BodyParameter $AddLicenseBody
    Write-Host “$($member.DisplayName) にライセンスを割り当てました。”
    } catch {
    Write-Error “$($member.DisplayName) へのライセンス割り当て中にエラーが発生しました: $($_.Exception.Message)”
    }
    }

    注意: 上記スクリプトは、グループメンバー全員にライセンスを割り当てるための基本的な例です。実際には、エラーハンドリング、既存ライセンスの確認、一部のサービスプランを無効にするなどの詳細な設定が必要になる場合があります。より高度なライセンス管理には、Microsoft Graph PowerShell SDKのドキュメントを参照してください。

ライセンス割当時の注意点とトラブルシューティング

ライセンスが反映されない場合

スクリプトを実行しても、ユーザーにCopilotライセンスが反映されない場合があります。原因として、SKU IDの誤り、対象グループのObject IDの間違い、またはPowerShellモジュールの古いバージョンが考えられます。再度、SKU IDとグループObject IDが正しいか確認し、モジュールを最新版にアップデートしてください。また、Azure ADの同期遅延も原因となり得ます。数時間待ってから確認することも有効です。

特定ユーザーにのみライセンスを割り当てたい場合

グループ全体ではなく、特定のユーザーにのみCopilotライセンスを割り当てたい場合は、`Get-MgGroupMember`コマンドで取得したメンバーリストから、対象ユーザーのIDをフィルタリングしてください。あるいは、個別のユーザーに対して`Set-MgUserLicense`コマンドを直接実行します。

ライセンスの削除方法

不要になったCopilotライセンスを削除するには、`Set-MgUserLicense`コマンドの`RemoveLicenses`パラメータを使用します。削除したいライセンスのSKU IDを指定してください。グループからユーザーを削除した場合、ライセンスは自動的には削除されないため、別途削除処理が必要です。

ADVERTISEMENT

Copilotライセンス管理の代替手段

PowerShell以外にも、Copilotライセンスを管理する方法があります。Microsoft 365管理センターのGUI操作で、個々のユーザーやグループにライセンスを割り当てることが可能です。大量のライセンスを一度に管理する場合にはPowerShellが効率的ですが、小規模な組織や一時的な割り当てには管理センターのインターフェースが直感的で分かりやすいでしょう。

また、Azure AD Premium P1/P2ライセンスをお持ちの場合は、条件付きライセンス(Conditional Access)を利用して、特定の条件を満たすユーザーに自動的にライセンスを割り当てることも可能です。これにより、ユーザーの所属部署や役職に基づいてライセンスを動的に管理できます。

項目 PowerShellによる一括割当 Microsoft 365管理センター
対象 ユーザーグループ全体 個々のユーザーまたはグループ
効率性 大量割当に非常に高い 小規模、個別割当に容易
自動化 スクリプトによる自動化可能 手動操作が基本
技術知識 PowerShellの知識が必要 GUI操作で容易
柔軟性 高度な制御が可能 基本的な割当・解除

PowerShellによる一括割当は、管理者がライセンス管理の負担を大幅に軽減する強力な手段です。本記事で解説した手順を参考に、Copilotライセンスの効率的な配布を実現してください。今後は、定期実行されるスクリプトとしてこのプロセスを組み込み、新規ユーザーや異動者へのライセンス適用を自動化することも検討すると良いでしょう。また、Microsoft Graph PowerShell SDKの他の機能も活用することで、より高度なライセンス管理が可能になります。

ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。