レポート Teams チャネルの電子メール アドレス
これらのあいまいなチームチャネル電子メールアドレスの接続
同僚は、チャネルのメールアドレスが属するチームを見つける方法の質問を投げかけました。これは、Teams がチャネルの電子メール アドレスを作成するとき ( 24482dde.office365itpros.com@na.teams.ms)、アドレスには、アドレスをそのチャネルに接続できるヒントが含まれていません。チームは、標準、プライベート、共有など、あらゆる種類のチャネルの電子メール アドレスを生成でき、すべての種類に同じ種類の難読化されたアドレスが使用されます。Teams 管理センターでは、チャネルの電子メール アドレスを報告する方法はありません – チャネルの電子メール アドレスを表示するためのすぐに使用できる唯一の方法は、Teams クライアントの[電子メール アドレスの取得]オプションを使用することです。

私が言ったとしても、PowerShellがそのトリックを行います。実際、監査レコードを使用してチャネルがいつ電子メールアドレスを取得または失うかを知る方法について書いたとき、私は以前にこの道を進んでいました。その記事の一部では、PowerShell と Graph API 要求 ( スクリプトは GitHub から入手できます。).グラフ要求が必要なのは、 チームチャネルを取得 コマンドレットは、返すプロパティのセットに電子メール アドレスを含めません。
グラフのマスタリング
このスクリプトは、PowerShell でグラフを使用するための私の初期の取り組みの 1 つであり、すべてのコードと同様に、新しい目がより良い結果を生み出すことがあります。少なくとも、それは永遠の希望です。今回は Microsoft Graph PowerShell SDK を使うことにしました。
3 年前、Microsoft Graph PowerShell SDK は素晴らしい状態ではありませんでした。それはまだあるべき場所ではないと主張する人もいるでしょう。私はSDKが、たとえそのドキュメントがまだ汚れた運河の水を吸っていても、大幅に改善されたと思います。SDK の最大の利点は、Graph 要求の実行に必要なアクセス許可を保持するために、Azure AD で登録済みアプリを作成する必要がないことです。そのコマンドレットの一部は、ページネーションも処理します。
多くの人にとって、SDK はグラフ要求を実行するよりも使いやすいです。API 要求形式のコツをつかめば、SDK コマンドレットと Graph 要求を切り替えることができます。これは、ユーザーが左ハンドル車と右ハンドル車を切り替えるのと同じように、切り替えることができます。いずれにせよ、ここに私が書いたコードがあります:
Connect-MgGraph -Scopes Group.Read.All, Directory.Read.All Select-MgProfile Beta [array]$Teams = Get-MgGroup -Filter "resourceProvisioningOptions/Any(x:x eq 'Team')" -All If (!($Teams)) {Write-Host "Can't find any teams - exiting"; break} $Teams = $Teams | Sort-Object DisplayName $ChannelsList = [System.Collections.Generic.List[Object]]::new() [int]$i = 0 ForEach ($Team in $Teams) { $i++ $ProgressBar = "Processing Team " + $Team.DisplayName + " (" + $i + " of " + $Teams.Count + ")" Write-Progress -Activity "Checking Teams Information" -Status $ProgressBar -PercentComplete ($i/$Teams.Count*100) [array]$Channels = Get-MgTeamChannel -Teamid $Team.Id ForEach ($Channel in $Channels) { If ($Channel.Email) { $ChannelLine = [PSCustomObject][Ordered]@{ # Write out details of the private channel and its members Team = $Team.DisplayName Channel = $Channel.DisplayName Description = $Channel.Description EMail = $Channel.Email Id = $Channel.Id } $ChannelsList.Add($ChannelLine) } } #End Foreach Channel } # End ForEach Team
チーム生成メールアドレスの絞り込み
今のところ大丈夫です。唯一の複雑さは、 Get-MgTeamChannel コマンドレットは、チャネルの電子メール アドレスが生成されていない場合、チームの一般チャネルの基になる Microsoft 365 グループのプライマリ SMTP アドレスを返します。いくつかの点で、これは一般チャネルがチームの中心であるため、期待されます。ただし、グループのプライマリ SMTP アドレスを使用して、一般チャネルに電子メールを送信することはできません。Exchange Online は、このアドレスに送信されたすべてのメッセージをグループ メールボックスに配信します。
したがって、チームが生成したアドレスのセットを見つけるには、追加のフィルターを適用する必要があります。チームによって生成されたすべてのアドレスは、この目的で使用される特別な Office 365 ドメインである “teams.ms" で終わるため、これは簡単です。コマンドは次のとおりです。
$TeamsEmailAddresses = $ChannelsList | ? {$_.Email -Like "*.teams.ms"}
図 2 は、テナント内の電子メール アドレスのセットを示しています。それらのほとんどはテストに使用され、あいまいなチャンネル名の一部を占めています。

PowerShell は管理者にとって非常に貴重です
このような状況は、PowerShell が Microsoft 365 テナント管理者にとって非常に貴重なツールであるという主張の真実を強調しています。ベンダーによって作成された管理ツールのセットはすべてを網羅するものではなく、PowerShellのギャップを埋める能力がそれを非常に便利にしている理由です。PowerShellからグラフ呼び出しを行う機能を追加すると、実際に非常に強力なツールが提供されます。
Office 365 アプリケーションが実際に継続的にどのように機能するかについては、 Office 365 for IT プロフェッショナル 電子ブック。毎月の更新により、Office 365 エコシステム全体で重要な点についてサブスクライバーに通知されます。
ディスカッション
コメント一覧
まだ、コメントがありません