Graph PowerShell SDK を利用して Teams のチーム作成を制限する
MSOnline および Azure AD PowerShell が 2023 年 6 月 30 日で廃止され、今後は Microsoft Graph を利用することになります。今まで利用していた MSOnline や Azure AD PowerShell コマンドを Microsoft Graph PowerShell に置き換える対応をはじめられた方も多くいらっしゃるのではないでしょうか。
私も社内の Microsoft 365 環境を運用する中で使っていたコマンドやスクリプトについて、使うタイミングで徐々に置き換えを行っています。今回はその中で先日置き換えた内容として、Microsoft Graph PowerShell SDK で Teams チームの作成を制限する方法をご紹介します。
※ 設定により、指定したセキュリティ グループに参加しているユーザーのみチーム作成を可能とします。
※ チーム作成制御には Azure AD Premium ライセンスが必要です。
Microsoft Graph PowerShell SDK のインストール
Microsoft Graph PowerShell SDK をインストールします。
Install-Module Microsoft.Graph -Scope CurrentUser
インストール後、Microsoft Graph PowerShell SDK の情報を表示して結果を確認してみます。正常にインストールされている場合、バージョンや名前が表示されます。
Get-InstalledModule Microsoft.Graph
すでに Microsoft Graph PowerShell SDK がインストールされている場合に最新にアップデートする際は以下のコマンドを利用します。
Update-Module Microsoft.Graph
Microsoft Graph への接続
- Microsoft Graph PowerShell SDK ベータ版のコマンドが利用できるようにします。
Select-Mgprofile -name beta
- Microsoft Graph に接続します。このとき、チームの作成制限に必要なアクセス権を指定します。
【今回の作業に必要な権限】
・ グループの読み取りと書き込み
・ グループ メンバーの読み取りと書き込み
・ ディレクトリ データの読み取りと書き込みConnect-MgGraph -Scopes "Group.ReadWrite.All",
"GroupMember.ReadWrite.All", "Directory.ReadWrite.All" - 管理者アカウントとパスワードを入力し Microsoft 365 にサインインしてください。
- サインイン後、要求されているアクセス許可画面が表示された場合、[承諾] をクリックします。
※ 「組織の代理として同意する」 にはチェックを入れないでください。チェックを入れると、組織のすべてのユーザーに同じアクセス許可が永続的に割り当てられます。
チームの作成制御の設定
-
- ディレクトリ設定の ID を取得します。初期値は空であり、一度でも設定を行っている場合は、ID が割り当てられています。
$DirectorySettingId = (Get-MgDirectorySetting
| Where-object {$_.DisplayName -eq "Group.Unified"}).Id - 取得したディレクトリ設定の ID が空か確認します。空の場合はディレクトリ設定のテンプレートを利用して、ディレクトリ設定を作成します。
if (!$DirectorySettingId) { $templateid = (Get-MgDirectorySettingTemplate | Where-object {$_.displayname -eq "Group.Unified"}).Id $params = @{ TemplateId = $templateid
} New-MgDirectorySetting -BodyParameter $params $ DirectorySettingId = (Get-MgDirectorySetting | Where-object -Property Displayname -Value "Group.Unified" -EQ).Id } - ディレクトリ設定の更新する項目と値を指定します。コマンド内の 「セキュリティ グループ名」 は、チームの作成を許可するセキュリティ グループの名前を入力してください。
$params = @{ Values = @( @{ Name = "EnableGroupCreation" Value = $False } @{ Name = "GroupCreationAllowedGroupId" Value = (Get-MgGroup | Where-Object {$_.DisplayName -eq "セキュリティ グループ名"}).Id } ) }
- ディレクトリ設定を更新します。
Update-MgDirectorySetting -DirectorySettingId $DirectorySettingId -BodyParameter $params
- 更新後、値が正しく反映されていることを確認します。
(Get-MgDirectorySetting -DirectorySettingId $DirectorySettingId) .values
- 作業完了後、Microsoft Graph との接続を切断します。
Disconnect-MgGraph
Microsoft 365 の管理者は Microsoft Graph PowerShell を利用する機会が増えていくと思いますので、今後も運用管理に役に立つ Microsoft Graph PowerShell をご紹介したいと思います。
Microsoft 365 管理者向けコース
- CI505-H Microsoft 365 運用管理
Microsoft 365 の運用管理において必要となる知識を習得し、行うべき設定項目を理解いただけます。アカウントやデバイス管理の必須となる Azure AD に対する必須知識から、Exchange Online、Microsoft Teams、SharePoint Online、OneDrive for Business などの各サービスに対して行うべき設定、推奨される設定、理解しておきたいしくみなど、運用管理に必要となる内容を基本から、運用にもとめられるレベルまで解説します。また入退社や人事異動への対応方法、監査ログや検疫といったセキュリティ・コンプライアンス対策のために行うべきこともあわせてご紹介します。 - CI506-H Microsoft 365 デバイス管理
Azure AD や Microsoft Intune を利用したデバイスの登録や管理、アプリの配布、デバイス情報を利用したセキュリティ対策など、デバイス管理手法を解説します。管理デバイスにおける Microsoft 365 利用時のセキュリティ対策など、よりセキュアな環境で作業ができるように行うべき内容をあわせてご紹介します。実機 (iPhone をご用意) を使用した実習が含まれているためモバイルデバイスの管理方法について実際にハンズオンにて動作を確認しながらご理解いただけます。 - CI507-H Microsoft 365 情報保護とコンプライアンス
Microsoft 365 の管理者を対象に、ファイルやメール、チームといった Microsoft 365 内の情報を保護するために必要な基本知識や利用すべき機能、および利用方法を解説します。
- ディレクトリ設定の ID を取得します。初期値は空であり、一度でも設定を行っている場合は、ID が割り当てられています。