【Teams】PowerShellでTeams会議ポリシーを一括変更する基本コマンド

【Teams】PowerShellでTeams会議ポリシーを一括変更する基本コマンド
🛡️ 超解決

Teams会議のポリシー設定に時間がかかっていませんか?多数のユーザーの会議ポリシーを個別に変更するのは、手間がかかる作業です。本記事では、PowerShellを活用してTeams会議ポリシーを一括で変更する基本的なコマンドを紹介します。これにより、管理者様の作業効率を大幅に向上させることができます。この記事を読めば、ユーザーごとの会議ポリシー設定を効率的に管理できるようになります。

【要点】PowerShellでTeams会議ポリシーを一括変更する

  • Connect-CsOnline: Teams会議ポリシー管理に必要なPowerShellモジュールに接続する。
  • Get-CsOnlineUser: 現在のTeams会議ポリシー設定を確認する。
  • Grant-CsTeamsMeetingPolicy: ユーザーにTeams会議ポリシーを割り当てる。
  • Disconnect-CsOnline: Teams会議ポリシー管理セッションを終了する。

ADVERTISEMENT

PowerShellによるTeams会議ポリシー管理の概要

Microsoft Teamsの会議ポリシーは、会議の参加方法や機能、セキュリティ設定などを制御する重要な要素です。これらのポリシーをユーザーごとに設定・管理することで、組織のセキュリティ要件や利用目的に合わせたTeams会議環境を構築できます。従来、これらの設定はMicrosoft Teams管理センターから個別に行う必要がありました。しかし、ユーザー数が多い組織では、その作業は膨大な時間と労力を要します。

そこで活用できるのが、PowerShellです。PowerShellは、Windows環境で利用できるコマンドラインシェルおよびスクリプト言語であり、Microsoft 365サービスの設定管理にも強力な機能を提供します。特に、Microsoft Teams会議ポリシーのような、多数のユーザーに一括で適用したい設定に対して、PowerShellスクリプトを用いることで、作業時間を劇的に短縮できます。この機能を利用するには、Azure Active Directory(Azure AD)のグローバル管理者権限またはTeamsサービス管理者権限が必要です。組織のポリシーによっては、これらの権限を持つユーザーのみが実行できる場合があります。

お探しの解決策が見つからない場合は、こちらの「Teams/Outlookトラブル完全解決データベース」で他のエラー原因や解決策をチェックしてみてください。

Teams会議ポリシー管理に必要なPowerShellモジュールの準備

Teams会議ポリシーをPowerShellで管理するには、まず適切なモジュールをインストールし、Teamsサービスに接続する必要があります。この準備が、一括変更作業の第一歩となります。モジュールが正しくインストールされていない、または接続が確立されていない場合、コマンドを実行してもエラーが発生します。

現在、Teams会議ポリシーの管理には、主にMicrosoft Teams PowerShellモジュールが使用されます。このモジュールは、Teamsの様々な設定を管理するためのコマンドレットを提供します。モジュールのインストールは一度行えば、以降は必要に応じて接続するだけで利用できます。接続時には、Microsoft 365の管理者アカウント情報が必要となります。このアカウント情報は、セキュアに管理することが重要です。組織によっては、IT部門がモジュールのインストールや接続手順を標準化している場合もあります。

Microsoft Teams PowerShellモジュールのインストール

まだMicrosoft Teams PowerShellモジュールがインストールされていない場合は、管理者権限を持つPowerShellウィンドウで以下のコマンドを実行してインストールします。このコマンドは、最新バージョンのモジュールをインストールします。インターネット接続が必要です。

  1. Teams PowerShellモジュールのインストール
    管理者権限でPowerShellを開き、以下のコマンドを実行します。
    Install-Module -Name MicrosoftTeams
  2. インストール確認
    インストールが完了したら、モジュールが正しくロードされているか確認します。
    Import-Module MicrosoftTeams

Teamsサービスへの接続

モジュールが準備できたら、Teamsサービスに接続します。接続には、管理者アカウントの資格情報が必要です。以下のコマンドを実行し、表示されるサインイン画面で管理者アカウントのIDとパスワードを入力してください。多要素認証(MFA)が有効な場合は、追加の認証手順も実行します。

  1. Teamsサービスへの接続コマンド実行
    以下のコマンドを実行します。
    Connect-CsOnline -Credential (Get-Credential)
  2. 資格情報の入力
    表示されるダイアログボックスに、管理者アカウントのユーザー名とパスワードを入力します。
  3. 接続確認
    接続が成功すると、コマンドプロンプトに戻ります。エラーが表示された場合は、資格情報やネットワーク設定を確認してください。

現在のTeams会議ポリシー設定の確認方法

ポリシーを一括変更する前に、現在の設定状況を確認することは非常に重要です。これにより、意図しない変更を防ぎ、変更後の結果を正確に把握できます。PowerShellを使用すると、個々のユーザーまたは組織全体の会議ポリシー設定を効率的に取得できます。

Get-CsOnlineUserコマンドレットは、Azure AD(Azure AD)内のユーザーに関する情報を取得するために使用されます。このコマンドレットに適切なパラメータを指定することで、特定のユーザーのTeams会議ポリシー設定を確認したり、複数のユーザーのポリシー設定を一覧で表示したりすることが可能です。組織によっては、ユーザーの作成・削除・権限変更などの操作もこのコマンドレットで行うため、非常に汎用性の高いコマンドです。

特定のユーザーの会議ポリシーを確認する

特定のユーザーの現在のTeams会議ポリシー設定を確認するには、Get-CsOnlineUserコマンドレットにユーザーのSIPアドレス(通常はメールアドレス)を指定します。取得した情報の中から、MeetingPolicyプロパティを確認することで、そのユーザーに適用されているポリシー名がわかります。

  1. ユーザーの会議ポリシー確認コマンド
    以下のコマンドを実行します。`user@example.com` の部分は、確認したいユーザーのメールアドレスに置き換えてください。
    Get-CsOnlineUser -Identity user@example.com | Select-Object UserPrincipalName, MeetingPolicy
  2. 結果の確認
    コマンドを実行すると、ユーザーのUPN(User Principal Name)と、適用されているMeetingPolicyが表示されます。

全ユーザーの会議ポリシーを一覧で確認する

組織内のすべてのユーザーの会議ポリシー設定を一覧で取得するには、Get-CsOnlineUserコマンドレットに`-Identity`パラメータを指定せずに実行し、結果をパイプラインで`Select-Object`コマンドレットに渡します。これにより、ユーザー名と会議ポリシーの設定をまとめて確認できます。大量のユーザーがいる場合は、このコマンドの実行に時間がかかることがあります。

  1. 全ユーザーの会議ポリシー一覧取得コマンド
    以下のコマンドを実行します。
    Get-CsOnlineUser -Filter {Enabled -eq $true} | Select-Object UserPrincipalName, MeetingPolicy
  2. 結果の出力
    ユーザー名と会議ポリシーが一覧で表示されます。この結果をCSVファイルにエクスポートすることも可能です。
    Get-CsOnlineUser -Filter {Enabled -eq $true} | Select-Object UserPrincipalName, MeetingPolicy | Export-Csv -Path C:\temp\AllUsersMeetingPolicy.csv -NoTypeInformation

ADVERTISEMENT

Teams会議ポリシーを一括変更するコマンド

現在の設定を確認したら、いよいよポリシーの一括変更です。Grant-CsTeamsMeetingPolicyコマンドレットを使用することで、指定したユーザーグループに対して、新しい会議ポリシーを迅速に割り当てることができます。このコマンドは、組織全体のポリシー管理を効率化する上で非常に強力です。

一括変更を行う際には、対象となるユーザーを正確に特定することが重要です。誤ったユーザーグループにポリシーを適用してしまうと、意図しない影響が出る可能性があります。そのため、事前に変更対象となるユーザーリストを準備しておくか、特定の条件でユーザーをフィルタリングするなどの工夫が必要です。また、組織によっては、特定の部門や役職のユーザーのみに適用されるポリシーが存在するため、変更作業は慎重に進める必要があります。

特定のユーザーグループにポリシーを割り当てる

この方法では、まず変更したいユーザーのリストをCSVファイルから読み込み、そのリストに含まれるユーザーに対して一括でポリシーを割り当てます。まず、ユーザーのUPN(UserPrincipalName)を記載したCSVファイル(例: `UsersToUpdate.csv`)を用意します。ファイルにはヘッダー行(例: `UserPrincipalName`)が必要です。

  1. CSVファイルの準備
    以下のような内容のCSVファイルを作成します。(例: C:\temp\UsersToUpdate.csv)
    UserPrincipalName
    user1@example.com
    user2@example.com
  2. CSVファイルからユーザーリストを読み込む
    以下のコマンドでCSVファイルを読み込みます。
    $users = Import-Csv -Path C:\temp\UsersToUpdate.csv
  3. 指定したポリシーをユーザーに割り当てる
    以下のコマンドで、読み込んだユーザーリストに対して指定した会議ポリシー(例: `NewMeetingPolicy`)を割り当てます。
    foreach ($user in $users) { Grant-CsTeamsMeetingPolicy -Identity $user.UserPrincipalName -PolicyName NewMeetingPolicy }
  4. 変更の確認
    必要に応じて、Get-CsOnlineUserコマンドレットを使用して、ポリシーが正しく適用されたか確認します。

組織内の全ユーザーにデフォルトポリシーを適用する

組織全体のユーザーに、特定のデフォルト会議ポリシーを適用したい場合があります。例えば、新規導入したポリシーを全ユーザーに適用する際などに有効な方法です。この場合もGet-CsOnlineUserコマンドレットで全ユーザーを取得し、その結果をGrant-CsTeamsMeetingPolicyコマンドレットにパイプします。

  1. 全ユーザーを取得し、ポリシーを割り当てる
    以下のコマンドを実行します。`GlobalMeetingPolicy` の部分は、適用したいポリシー名に置き換えてください。
    Get-CsOnlineUser -Filter {Enabled -eq $true} | Grant-CsTeamsMeetingPolicy -PolicyName GlobalMeetingPolicy
  2. 実行結果の確認
    コマンドの実行が完了したら、Get-CsOnlineUserコマンドレットで一部のユーザーのポリシー設定を確認し、変更が反映されていることを確認します。

特定の条件でフィルタリングしてポリシーを割り当てる

特定の条件(例: 特定の部署、特定のライセンスを持つユーザー)に合致するユーザーにのみポリシーを適用したい場合、Get-CsOnlineUserコマンドレットの`-Filter`パラメータを効果的に使用します。これにより、より精密なユーザーグルーピングとポリシー適用が可能になります。

例えば、`Department`属性が「Sales」のユーザーに特定の会議ポリシーを適用したい場合、以下のようなコマンドを使用します。この例では、`Department`属性が「Sales」のユーザーを取得し、そのユーザーに`SalesMeetingPolicy`を割り当てます。組織のAzure AD(Azure AD)でこれらの属性が適切に設定されていることが前提となります。

  1. 部署を指定してポリシーを割り当てる
    以下のコマンドを実行します。`SalesMeetingPolicy` は適用したいポリシー名に置き換えてください。
    Get-CsOnlineUser -Filter {Enabled -eq $true -and Department -eq 'Sales'} | Grant-CsTeamsMeetingPolicy -PolicyName SalesMeetingPolicy
  2. 変更結果の検証
    対象ユーザーのUPNをいくつかピックアップし、Get-CsOnlineUser -Identity | Select-Object UserPrincipalName, MeetingPolicy コマンドで、ポリシーが正しく適用されたか確認してください。

作業完了後のセッション切断

PowerShellでTeams会議ポリシーの管理作業が完了したら、セキュリティのためにTeamsサービスへの接続セッションを切断することが推奨されます。これにより、管理者アカウントの情報を不正に取得されるリスクを低減できます。セッションを切断するコマンドはシンプルです。

  1. セッション切断コマンドの実行
    以下のコマンドを実行して、現在のセッションを切断します。
    Disconnect-CsOnline
  2. 確認
    コマンド実行後、特にメッセージは表示されませんが、セッションは正常に終了します。

新しいTeams(v2)と従来Teamsでの違い

新しいTeams (v2) は、パフォーマンスの向上と、よりモダンで一貫性のあるユーザーインターフェースを目指して再構築されています。機能面では、多くの既存機能が引き続き利用可能ですが、一部の高度なカスタマイズや管理機能において、従来のTeamsと完全に同じ動作をしない場合があります。

しかし、PowerShellによるTeams会議ポリシーの管理に関しては、基本的なコマンドレットやその動作は、新しいTeams (v2) 環境でも概ね変更なく利用できます。Connect-CsOnline, Get-CsOnlineUser, Grant-CsTeamsMeetingPolicy といったコマンドレットは、引き続きTeams会議ポリシーの管理に有効です。ただし、将来的なアップデートにより、一部のパラメータやコマンドレットの挙動が変更される可能性はあります。最新の情報はMicrosoftの公式ドキュメントで確認することが推奨されます。新しいTeams (v2) では、より統合された管理エクスペリエンスが提供されるため、PowerShellによる管理もさらに効率化されることが期待されます。

Mac版・モバイル版・Web版での違い

今回紹介したPowerShellコマンドは、Windows環境のPowerShellを利用して実行するものです。そのため、Mac版、モバイル版(iOS/Android)、またはWeb版のTeamsクライアントから直接これらのコマンドを実行することはできません。

Macユーザーの場合、Windows仮想環境を利用するか、macOS用のPowerShell(PowerShell Core)をインストールして使用することで、同様の管理作業を行うことが可能です。ただし、Mac版PowerShell Coreでの利用にあたっては、一部のモジュールやコマンドレットの互換性に注意が必要な場合があります。モバイル版やWeb版のTeamsクライアントは、主にエンドユーザー向けの機能を提供しており、管理者権限を必要とするような高度な設定変更機能は搭載されていません。これらのプラットフォームで管理作業を行う場合は、必ずPC環境(WindowsまたはmacOS)からPowerShellを利用する必要があります。組織によっては、リモートデスクトップサービスなどを利用して、Windows環境にアクセスして管理作業を行うことも一般的です。

まとめ

本記事では、Microsoft Teams会議ポリシーを一括で変更するためのPowerShellコマンドについて解説しました。Connect-CsOnlineで接続し、Get-CsOnlineUserで現状を確認、Grant-CsTeamsMeetingPolicyで一括変更を行い、最後にDisconnect-CsOnlineでセッションを切断する一連の流れを習得できました。この知識を活用することで、多数のユーザーに対するポリシー設定作業を効率化し、管理者の負担を大幅に軽減できます。次回は、特定の条件でのユーザーフィルタリングをさらに応用した、より複雑なポリシー適用方法についても検討してみましょう。

👥
Teams/Outlookトラブル完全解決データベース サインイン、接続エラー、メール送受信の不具合など、特有のトラブル解決策を網羅。困った時の逆引きに活用してください。

ADVERTISEMENT

この記事の監修者
🌐

超解決 リモートワーク研究班

Microsoft 365の導入・保守を専門とするエンジニアグループ。通信障害やサインイン不具合など、ビジネスインフラのトラブル対応に精通しています。