A Better Way to Manage Microsoft Teams Policies with Bulk Edit
As Microsoft continues to push the migration from Skype for Business to Microsoft Teams, more and more companies are finding themselves needing help navigating the process. We were recently brought in to help plan and implement a Teams phone rollout as one of our clients migrates away from Skype for Business. During information-gathering for this effort, we quickly found that managing all of the different types of Teams policies at scale can be a bit cumbersome.
While the Teams admin center does allow for bulk editing users to any given policy, there is a severe lack of functionality on the “reporting” side. Not reporting in the classic sense, but rather simply showing all members of a given Teams policy, whether it be Meeting Policy, a Calling Policy, or any other policy offers in the Teams Admin Center.
A Better(?) Way
Our immediate first thought was that there must be a way to report on policy membership in PowerShell. First, we checked the Teams PowerShell module. Unfortunately, this module is still relatively new and does not offer much functionality outside of global settings and creating/removing policies.
Instead, we looked to the Skype for Business PowerShell module. This old module allows for full management of all Teams policies as well as adding/removing users and changing policy settings.
Leveraging PowerShell along with the S4B Module, we built a Windows Form application that can be used to manage the policy membership of all Microsoft Teams Policies. It offers the users the ability to select the type of policy to manage (meeting, calling, etc.) and then immediately pulls in all available policies for that type.
A user can pull up the settings for any given policy for a quick look or add/remove a user right from the application. Additionally, one can pull all the members for a policy with the click of the button.
While pulling all the membership in the window is nice, we felt that it would be necessary to also allow for exporting of this information. As such, our GUI allows for a few different export options. A user can export the membership of any given policy, all the policies that a single user is assigned to, or even a master CSV of all users in all policies.
Conclusion + Source Code Download
This small tool was a great help to our client in their Teams roll out and until Microsoft finishes their Graph PowerShell module, or adds features to the Teams PowerShell module, we believe that it could help many more. If you’re interested in checking out the code, or simply want to test drive the application, please visit our GitHub repo.