Microsoft Teams User Group – Slide Deck and source code


Another week with the community now comes to an end. On Wednesday, I attended the Microsoft Teams User Group Germany, which basically is a joint venture of three organizers from Hamburg, Bochum and Munich here in Germany. If you like to get more information about the user group, please go to https://www.meetup.com/de-DE/Skype-for-Business-User-Group-Hamburg/ .

My session and a little bit of this years community history

So what can I tell you about my session? For those of you who attended in the user groups meeting on March, you will remember that there was a fantastic talk by Michael Plettner on Teams lifecyclde management by using the Microsoft Graph.

I really enjoyed that because I’m already working with the Microsoft Graph from the early times and it’s great to see how other guys and girls make use of functionality you use on your daily job. But for me there was some main drawback: with Office 365 we dgo serverless, and we already can make use of tools like Microsoft Flow to manage the Teams in Microsoft Teams. So Microsoft Graph for me does not sound like a good option for that.

In addition, most of the attendees in Hamburg are actually Operations staff. Like me. And we don’t use a native API call when there’s an action available in Microsoft Flow. but we constantly still need to deal with on-prem endpoints, like Windows Servers and Linux servers which run systems like a ticket system. And if we had such a remote system, we still want to connect to Microsoft teams to get our lifecycle management connected with a modern cloud environment.

That’s why in a break I came up with the idea to do a talk on Lifecycle Management for Teams in Microsoft Teams by using scripts. Admins use scripts, not programs. And as most of us have a Windows background, that leads to PowerShell.

Said. Done. Prepared a session. Offered and accepted by the User Group. But then the Powershell Module verson 1.0 for Microsoft Teams was released in April.


Holy crap!- What is left for me to talk about, now? Ah, that said Microsoft really did a good job to me, as most of the options I need at my daily job are still not implemented. And so we’re back on our track.

  • logon to Microsoft Graph; no – I skipped that part in my session as there is other sessions for Azure AD B2B authentication and token retrieval. If you need to learn more about that, read my post https://www.meetup.com/de-DE/Skype-for-Business-User-Group-Hamburg/ .
  • Microsoft Graph API basics. Definitely, yes.
    I started my talk by introducing some basics around calling the Mcicrosoft Graph API from PowerShell: the patterns how you call it by using invoke-restmethod using the authorization header and parameters, if needed. and how to parse its response.
    For that, I didn’t use Microsoft Teams as I needed a shorter JSON reponse. As working with OneDrive for Business is still required when we talk about Microsoft Teams, I used a simple call to show the drive root files and folders for that.
    All too easy.
  • For a lifecycle, we discussed the create, modify and clean up stages, as archiving was part of the session after me. Just showing the potential you have when you need to create and manage your Teams from your ticket systems, like OTRS, Manage Engine and others. That was the main part of my session.
  • When you need to work by using microsoft Graph, you also learn more about the nature of Office 365 components. When talking about Teams,you sometimes get  deeper insight on how things interact with Unified Groups, Exchange Online and Azure AD. So there was a longer QnA part about that and how we interact with the “Unified Group is hidden if we do it via the GUI, what about that approach?”.
    You know, while code by itself is hard to follow for an attendee, that kind of question showed me that attendees were still with me and recognized about the properties and potential that comes with great Power(Shell). I’m still so sorry that I had to cancel that with regard to the timings.

I really want to say Thank you to all participants, as your questions raised several ideas for additional sessions. You will again find new session on my list which I will offer to answer at least some of that questions which classify as the ones with the highest impact to me!

And where do we find your slide deck, though?

Those who attended will understsand that this timeI will not publish any deck – it does not make any sense to publish a deck with only 1 slide for “demo”. While writing that, I really want you to read the article https://docs.microsoft.com/en-us/microsoftteams/plan-teams-governance about governance in Microsoft Teams.

And you should check the Microsoft Teams user group channel at youtube.de for the recording (in german language only).

I also want to point you out to my GitHub repos at https://github.com/MartinGudel as you can find sample code from several sessions on how to authenticate to Microsoft Graph using different authentication flows, and how to get access to Microsoft Teams and other resource services. I really appreciate your git clone as well as your comments on how to improve the code which is listed there.

But don’t forget: don’t use the demo code in your production. Add some security and coding best practices before you add that to your own script or app!

Thank you!

So now that the meetup is over, I’d like to say Thank you! to the organizers, especially to Dennis Winkelmann for organizing and GIS AG for hosting this months Microsoft Teams User Group meetup, as well as providing food and beverage.

Another Thank you! goes to Michael Plettner and Thomas Poett for organizing the meetup itself and collecting and orchestrating the sessions, content and all the ideas which you need to do a meetup like this.

And last but not least I’d like to say Thank you! to all the attendees in Munich, Bochum and Hamburg, I hope you liked my session and took some inspiration away to improve your own Microsoft Teams orchestration. Let me know your success stories when using PowerShell with Microsoft Teams to manage yout environment.

Wish you all a great summer holiday!