【Teams】すべてのTeamsから情報を取得する【PowerShell】

こんにちは。
先日チームの情報をGet-Teamで取ろうとしたところ、
自分が所属しているチームしか取得できないようで困ったので今回記事にします。

はじめに

今回参考にさせて頂いた記事はTechNetのこちらの記事になります。
ただし、参考にさせて頂いた記事はTeamsが有効であるグループの取得で、
これから書くコードはTeamsのために作成されたグループの取得です。
前者の方法ですと、実際には利用していないチームも含まれてると思うのです。
つまり。。。

 ・❌SharePointを手動で作成した際に作成されるO365グループを含む

 ・🔴Teamsを手動で作成して、自動でO365グループが作成されたもののみ

ということです。
実際にTechNetさんの記事のコードを叩くと、SPO用のグループも取得されてしまいました。

それでは行きましょう。

解説

注目するべきは1点だけで、「ResourceProvisioningOptions」プロパティについてです。

if ($o365group.ResourceProvisioningOptions -eq "Team"){
                $teamsList = $teamsList + [pscustomobject]@{TeamsID = $o365group.PrimarySmtpAddress; TeamsName = $o365group.DisplayName; SharePointUrl = $o365group.SharePointSiteUrl}
            }

[$o365group]には「Get-UnifiedGroup」コマンドで取得したグループ情報が格納されています。
その中の「ResourceProvisioningOptions」には、Teamsから作成された場合、”Teams”というStringが格納されます。
それが存在すれば任意の情報を取得するようにしています。
今回はSMTPアドレス、チームの表示名、連携しているSharePointのURLを取得しています

その他にも色々取得できるものがありますので確認してみてください。
一応以下に貼っておきますが、長すぎるので一部割愛します。
(アドレス等はすべて加工してます。)

RunspaceId : 749ef425-a217-4e86-8577-bd0c1d9c2390
AccessType : Public
AuditLogAgeLimit : 90.00:00:00
AutoSubscribeNewMembers : False
AlwaysSubscribeMembersToCalendarEvents : True
CalendarMemberReadOnly :
CalendarUrl : https://outlook.office365.com/owa/?path=/group/test1@hogehoge.onmicrosoft.com/calendar
Database : JPNPR01DG026-db097
ExchangeGuid : 0a952569-3bd5-40af-9d45-ea2dd1ca0c6a
FileNotificationsSettings :
GroupSKU : Default
HiddenGroupMembershipEnabled : False
InboxUrl : https://outlook.office365.com/owa/?path=/group/test1@hogehoge.onmicrosoft.com/mail
IsExternalResourcesPublished : True
IsMailboxConfigured : True
Language : ja-JP
MailboxProvisioningConstraint :
ManagedByDetails : {Sendy}
Notes : test1
PeopleUrl : https://outlook.office365.com/owa/?path=/group/test1@hogehoge.onmicrosoft.com/people
PhotoUrl : https://outlook.office365.com/EWS/Exchange.asmx/s/GetUserPhoto?email=test1@hogehoge.onmicrosoft.com
ServerName : tyapr01mb3792
SharePointSiteUrl : https://hogehoge.sharepoint.com/sites/test1
SharePointDocumentsUrl : https://hogehoge.sharepoint.com/sites/test1/Shared Documents
SharePointNotebookUrl :
SubscriptionEnabled : True
WelcomeMessageEnabled : True
ConnectorsEnabled : True
IsMembershipDynamic : False
Classification :
GroupPersonification :
YammerEmailAddress :
GroupMemberCount : 4
MailboxRegion :
GroupExternalMemberCount : 3
AllowAddGuests : True
WhenSoftDeleted :
HiddenFromExchangeClientsEnabled : False
ExpirationTime :
DataEncryptionPolicy :
ResourceProvisioningOptions : {}
ResourceBehaviorOptions : {}
ServiceEndpointUris : {}
SensitivityLabel :
EmailAddresses : {SPO:SPO_7ff06194-bbe6-47a1-a774-b70020beaa9e@SPO_079de2ae-6b71-4ba3-a962-c08ce2bf0d2b, SMTP:test1@hogehoge.onmicrosoft.com}
PrimarySmtpAddress : test1@hogehoge.onmicrosoft.com
Name : test1_80f32222-92d6-47eb-8f08-56d1bad1b7de
DisplayName : test1
RequireSenderAuthenticationEnabled : True
ModerationEnabled : False
SendModerationNotifications : Always
SendOofMessageToOriginatorEnabled : False
BypassModerationFromSendersOrMembers : {}
ModeratedBy : {}
GroupType : Universal
IsDirSynced : False
ManagedBy : {Sendy}
MigrationToUnifiedGroupInProgress : False
ExpansionServer :
ReportToManagerEnabled : False
ReportToOriginatorEnabled : True
AcceptMessagesOnlyFrom : {}
AcceptMessagesOnlyFromDLMembers : {}
AcceptMessagesOnlyFromSendersOrMembers : {}
AddressListMembership : {\All Groups, \All Distribution Lists, \Offline Global Address List, \GroupMailboxes(VLV)…}
AdministrativeUnits : {}
Alias : test1
OrganizationalUnit : jpnpr01a006.prod.outlook.com/Microsoft Exchange Hosted Organizations/hogehoge.onmicrosoft.com
CustomAttribute1 :

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[ResourceProvisioningOptions]については、こちらを確認してください。

終わりに

今回は以上になります。
正直これは結構要望がお客様から出ます。
記事にできて個人的に良かったな・・・(笑)

それではまた。