Oh! 365 blog

Office 365 と生きていく

Add-TeamUser の Owner パラメータの動作が改善されました (v1.0.4 以降)【Teams】

Microsoft Teams PowerShell でユーザーを追加する Add-TeamUser で動作変更がありました。過去の実装のままだと、パフォーマンス観点で不利なので、本記事の内容に該当する場合は、スクリプト修正も検討したほうが良いと思います。

以前は、 -Role Owner のパラメータの動作が、アプリ上の操作と異なる動作が問題点として知られていました。アプリ上から手動で所有者に登録した場合と同じ動作にする回避方法は、以下のように 先にメンバーとして登録したのち、もう一度 Owner パラメータをつけて実行するというものでした。

Add-TeamUser -GroupI <GUID> -User user@contoso.com
Add-TeamUser -GroupI <GUID> -User user@contoso.com -Role Owner

このようにAdd-TeamUser を 2 回実行する必要があり、とても非効率となっていましたが、Ver 1.0.4 にてついに修正されました。これにより、Ver 1.0.4 以降のモジュールを通場合は、下記 1 行で済むようになりました。

Add-TeamUser -GroupI <GUID> -User user@contoso.com -Role Owner

従来のまま使っている場合も最終的な結果としては同じですが、コマンドの実行回数が減るメリットがあります。数人の処理なら差は出ないと思いますが、ループ処理で多くのユーザーを一括で登録するような場合は、パフォーマンスの観点からも修正することをお勧めします。


この修正は、Microsoft PowerShell の v1.0.4 以降のバージョンに含まれます。2020/6 時点だと 1.0.7 が利用可能なようなので、最新版に更新しておくことが無難かと思います。

Release Note
1.0.4

This update includes:
...
- Add-TeamUser will add user as both owner and member to a team when the -Owner parameter is set.

 

https://www.powershellgallery.com/packages/MicrosoftTeams/1.0.4

今回の内容としては以上となりますが、一般的な利用の中でなかなか気づくことのない動作だったので、そもそも何が問題だったのかという点も残しておこうと思います。

そもそも何が問題だったのか

Teams のアプリ上からユーザーを所有者として登録すると、実際には、チームに関連づいている Microsoft 365 グループ (旧名称 Office 365 グループ) の所有者およびメンバーに登録されます。一方、Add-TeamUser コマンドの Owner パラメータを使用して所有者として追加した場合、グループのメンバーに登録されないという問題がありました。

Microsoft 365 管理センターからグループの情報を見ると、アプリ上から所有者に追加したユーザーは、"所有者" と "メンバー" にそれぞれ表示され、Add-TeamUser で登録した所有者は、"所有者" のみに登録されるという結果となっていました。この動作の最も厄介な点は、Teams アプリ上でチームの情報からそのユーザーを見ると、どちらの場合も "所有者" として表示されており、見た目上は差異が無いように見えていたことでした

一見、M365 グループの所有者として登録されていれば問題ないようにも思えますが、Planner などのアプリでは、内部動作としてグループの "メンバー" に登録されているかをチェックする処理があり、Teams のチームで Planner を使っている場合に、所有者登録されているユーザーなのに、なぜかアクセス拒否のエラーが表示されるなどの問題が起きていました。そのため、わざわざ Add-TeamUser を 2 回実行して、所有者とメンバーに登録されるようする必要がありました。

おわりに

こういったモジュール類は、新しいバージョンが出るたびに何気なくアップデートしていましたが、たまたまリリースノートを見てこの動作変更に気づきました。今後はどのような修正や機能拡張が加わったのかにも注目してみようと思います。

今回の投稿は以上となります。