というわけで、PowerShellで チームを一括作成できるか
調査してみました。
まず、Microsoft TeamsはOffice365グループと連動しています。
さらに、Office365グループを動的メンバーシップにすることで
Teams側でも動的更新できるみたいです。
チームの動的なメンバーシップの概要 - Microsoft Docs
https://docs.microsoft.com/ja-jp/microsoftteams/dynamic-memberships
以下のサイトを元に、手動でOffice365動的グループ・Teamsへの切り替えができることは確認できました。
・グループ作成 – Microsoft Docs
https://docs.microsoft.com/ja-jp/office365/admin/create-groups/create-groups?view=o365-worldwide
・Office 365 Groups (グループ)に Microsoft Teams の機能を追加する – Art-Break Tech
https://art-break.net/tech/?p=1256
・Azure Active Directory の動的グループ メンバーシップ ルール - Microsoft Docsただ、実際運用する上では、
https://docs.microsoft.com/ja-jp/azure/active-directory/users-groups-roles/groups-dynamic-membership
一括でPowerShellでOffice365動的グループを作成し、さらにはTeams連動させたいので、以下手順で試してみます。
■Office365動的グループ作成
Office365グループ作成には以下のコマンドレッドが使えそうです。
New-AzureADMSGroup---------------------------------------------------------------------------------
https://docs.microsoft.com/en-us/powershell/module/azuread/new-azureadmsgroup?view=azureadps-2.0
New-AzureADMSGroup -DisplayName "testDynamic" ` -Description "Dynamic group created from PS" ` -MailEnabled $true -MailNickName "testDynamic"` -SecurityEnabled $true -GroupTypes "DynamicMembership","Unified" ` -MembershipRule '(user.department -contains ""Marketing"")' ` -MembershipRuleProcessingState "On"---------------------------------------------------------------------------------
上記サンプルを元に、Connect-AzureADで接続し、
Install-Module AzureAD を実行するも、エラー発生。
以下の記事を参照しました。
Error while creating dynamic group using powershell結果、以下のモジュールのインストール・インポートで利用できるようになりました。
https://github.com/MicrosoftDocs/azure-docs/issues/34263
---------------------------------------------------------------------------------
Install-Module AzureADPreview -Scope CurrentUser -AllowClobber Remove-Module AzureAD -ErrorAction SilentlyContinue Import-Module AzureADPreview---------------------------------------------------------------------------------
実際にOffice365 動的グループを作成してみます。
AADに登録されているユーザーで、部署属性に入力してある任意の事業部ユーザーは
自動的にOffice365グループに登録されることを確認できました。
ただ、この状態でO365で見ると、Office365グループが作成されただけで
プライバシーはパブリック、Teamsも作成されていない状態になりました。
Privateに変更した上で、Office365グループをTeams利用できるようにします。
■Office365グループをTeams登録する
Office365グループ設定は、ExchangeOnline側の設定となるようなので、接続します。
Exchange Online PowerShell に接続するグループを検索し、作成したグループが存在することを確認します。
https://docs.microsoft.com/ja-jp/powershell/exchange/exchange-online/connect-to-exchange-online-powershell/connect-to-exchange-online-powershell?view=exchange-ps
Get-UnifiedGroup---------------------------------------------------------------------------------
https://docs.microsoft.com/ja-jp/powershell/module/exchange/users-and-groups/get-unifiedgroup?view=exchange-ps
Get-UnifiedGroup –Identity <グループ名>---------------------------------------------------------------------------------
Privateに変更します。
Set-UnifiedGroup---------------------------------------------------------------------------------
https://docs.microsoft.com/ja-jp/powershell/module/exchange/users-and-groups/set-unifiedgroup?view=exchange-ps
Set-UnifiedGroup –Identity <グループ名> -AccessType Private---------------------------------------------------------------------------------
Privateになったことが確認できます。
つづいて、Office365グループをTeamsに登録します。
Teamsに変更する前に、予めGet-UnifiedGroupで対象グループのObjectID取得しておきます。
---------------------------------------------------------------------------------
$a=Get-UnifiedGroup -Identity <グループ名>---------------------------------------------------------------------------------
Teamsに接続し、モジュールをインストールします。
---------------------------------------------------------------------------------
connect-microsoftteams Install-Module -Name MicrosoftTeams -RequiredVersion 1.0.1---------------------------------------------------------------------------------
インストールのモジュールバージョンが1.0.1以降であれば、作成のコマンドが利用できそうです。
Teams モジュール 1.0.1グループを指定し、Teams作成します。
https://www.powershellgallery.com/packages/MicrosoftTeams/1.0.1
New-Team
https://docs.microsoft.com/en-us/powershell/module/teams/new-team?view=teams-ps---------------------------------------------------------------------------------
New-Team -GroupId $a.ExternalDirectoryObjectId---------------------------------------------------------------------------------
Teamsをみても作成されていることを確認できました。
■おまけ -- 所有者管理
office365グループのOwnerとTeamの所有者も連動するようです。したがって、所有者変更管理する場合も、Office365グループを編集するとよい感じです。 例えば、営業部で役職がSEの人のみオーナーとする場合はこんな具合です。
---------------------------------------------------------------------------------
$depart=Get-AzureADUser -Filter "startswith(department,’営業部')" $OwnerUser= $depart | ?{ $_.jobtitle -eq "SE" } $gid=get-unifiedGroup -identity testdynamic $OwnerUser | % { Add-UnifiedGroupLinks -Identity $gid.displayname -LinkType owners ` -links $_.userprincipalname }---------------------------------------------------------------------------------
■おまけ2 -- チーム設定
チャネル作成や、チーム設定などのコマンドも用意されています。Teams での PowerShell の概要チームごとの各種設定や、事前チーム作成もできそうです。
https://docs.microsoft.com/ja-jp/microsoftteams/teams-powershell-overview
■まとめ
・Office365グループとTeamsのチーム管理は連動している・Office365グループは動的グループ作成が可能であり、Teamsメンバーも連動できる
・Powershellによって、Office365グループ経由でTeamsの一括作成が可能
スポンサーリンク