Microsoft Teams :会議の参加者レポートのダウンロードをできるようにしたく PowerShell で悶絶した話

※いつもに増して記事の内容の正確性には全く自信持てません。完全に自分の備忘録なので、なるべく参考にせずに途中で紹介してる Microsoft の公式情報をご利用ください。

数ヶ月前に Microsoft Teams の会議で参加者レポートをダウンロードできる機能が展開されたけど、待てど暮らせど展開されず…。と思ったら、既定では機能はオフで、オンにするには PowerShell を使わなきゃいけないって事がわかったんです。

Teams での出席レポートのダウンロード
https://support.microsoft.com/ja-jp/office/ae7cf170-530c-47d3-84c1-3aedac74d310

▼この機能は管理者が有効にする必要があります(上のページから引用)

で、飛ばされたページはコチラ

会議のポリシー設定-会議出席依頼のレポート – Teams での会議ポリシーを管理する
https://docs.microsoft.com/ja-jp/microsoftteams/meeting-policies-in-teams#meeting-policy-settings—meeting-attendance-report

▼ PowerShell を使用する必要があります(上のページから引用)

で、僕は PowerShell の苦手意識が強くて、今までも Microsoft Teams の設定はGUI上でできるものしか触ってきませんでした。しかし、参加者レポートのダウンロードをどうしてもやりたい事になったので、重い腰を上げて設定をしようと思ったら、素人が手を出して悶絶したという話です。備忘録として残します。

■基本中の基本で転ぶ

鼻で笑われるの覚悟で書くけど、

▼管理者権限が必要です

PowerShell を普通にクリックして起動ではなく、右クリックから「管理者として実行する」で起動させなきゃダメですよね!数年に1回程度しか使わないとこういうところもウッカリ忘れちゃうんですよね。まぁ、こんなもんですよ。だから皆さんも色々と生きる希望を持ってください(笑)

■スクリプトが実行できない

ここら辺から余裕がなくなりスクショも撮り忘れています。様々なページやブログを見ながら操作をしていたけど、 Microsoft Teams のモジュールをインストールする事はできたけど、その後の、「 Connect-MicrosoftTeams 」からウンともスンとも言わなくて全然先に進めなかったんです。色々試していたところ、どうやらスクリプトの実行が無効になってるとかなんとか。で、更に調べてみたところ、スクリプトの実行が実行ポリシーによって許可されていないらしいと。

▼「 Restricted 」ってのはすべてのスクリプトの実行を制限されているとの事

これ初期設定らしいんです。つまり、誰しもが PowerShell を最初に触る時はここでポリシーを変更してるんですかね。わからん。とにかくこのポリシーをとりあえず「 RemoteSigned 」ってのに変更。

▼やっと動いたわ

ここまでに45分くらい格闘しています。 PowerShell の苦手意識が更に強くなったかも…。で、これらのコマンドがバージョン1.1.6では使えますよって事ですね。

■ Set-CsTeamsMeetingPolicy なんてないぞ!

ようやくスタート地点に立ったので、参加者レポートのダウンロードを有効にするには、「 CsTeamsMeetingPolicy 」というコマンドを使うんだという事で、次のページに飛ばされました。

Set-CsTeamsMeetingPolicy
https://docs.microsoft.com/ja-jp/powershell/module/skype/set-csteamsmeetingpolicy?view=skype-ps

この「 Set-CsTeamsMeetingPolicy 」を使えばイイんだよね。で、さっき Get-Command で表示させたコマンド一覧を見まわしました。

▼ Get-Command にはそんなコマンドないぞ!

バージョンは 1.1.6 で現時点で最新バージョン。なのにない!わけわからん!

Twitter でつぶやいたところ、目代さんから「それ Skype for Business のコマンドだったような」って返信をもらい、さっきの「 Set-CsTeamsMeetingPolicy 」のページを良く見ると…

▼ Module : SkypeForBusiness

あぁぁああああ!!!書いてあった!しかし、 Microsoft Teams に関するページからリンクをたどって来たから全然気が付かないわい! Microsoft Teams の会議ポリシーは Skype for Business のモジュールを使っているって事なのかね。知らんけど!

■ Microsoft Teams のモジュールで Skype for Business の管理ができるだと?

更に Twitter で ktrさんから New-CsOnlineSession の存在を教えてもらいました。

PowerShell を使用して Skype for Business Online を管理する
https://docs.microsoft.com/ja-jp/microsoft-365/enterprise/manage-skype-for-business-online-with-microsoft-365-powershell

つまり、 Skype for Business のモジュールを入れなくても、 Microsoft Teams のモジュールでできるらしいです。これ、先に教えてもらって良かった!目代さん、ktrさん、ありがとう!

■まず確認

▼「 Get-CSTeamsMeetingPolicy 」で確認

AllowEngagementReport ってのが参加者レポートの項目らしく、「 Disabled 」になっているので無効ですね。

■変更

Global 会議ポリシーで参加者レポートを有効化させたい場合は、

Set-CsTeamsMeetingPolicy -Identity Global -AllowEngagementReport Enabled

こうすれば変更できそうだ!

▼できた!

という事で長い旅は終わりました…。

■あれ?そもそも…

今回は、僕のプライベートテナントで、自分だけ参加者レポートがダウンロードできれば良いので、この後に気が付いたけど、そもそも「 AllOn 」って何でもONになってそうな会議ポリシーを自分に適用させれば良いんじゃない?と。

▼ AllOn ( Microsoft Teams 管理センターの会議ポリシーから)

▼ AllOn を見ると AllowEngagementReport が Enabled にぃ!!!

つまり、約1時間ほど悶絶しなくても、最初から自分に AllOn を適用させておけばよかったって事で、脱力…。まぁ、とりあえず色々と勉強になったので良しとします。

という事で、念のため Global 会議ポリシーは元に戻して、自分に AllOn を適用させて一件落着。

すぐに設定は反映されないとの事なので、数時間後にチェックしてみると、

▼無事に「出席者リストをダウンロード」が表示されていました

たぶん、めでたしめでたし。 PowerShell の苦手意識が更に高まってしまったけど、折角入れたので今後はちょくちょくと色々イジってみたいと思います。