Skip to content

Functions for the Teams Backend, Voice and Migration

License

Notifications You must be signed in to change notification settings

cgskreddy/TeamsFunctions

 
 

Repository files navigation

TeamsFunctions - Administering Teams made easier

This is the home for TeamsFunctions, a module for Administering Teams Users and Objects in MicrosoftTeams and AzureAd

License Platform Minimum Supported PowerShell Version Project Status: The project has reached a stable, usable state but soon being replaced; support/maintenance will be provided as time allows.

Documentation - GitHub PowerShell Gallery - TeamsFunctions

NOTE: This module has been placed in Maintenance mode due to its dependency for AzureAd/AzureAdPreview which is deprecated and will be phased out with 30-MAR 2024 Decision was made to move the codebase to a different module and rework for Graph API access. This also allows correcting a few issues plagueing me for some time (Semantic Versioning, Pipeline, etc.)

This module is called Orbit and will be made available soon is available now.

Introduction

This module exists as many of Microsofts Teams back-end (SkypeOnline) Cmdlets are (imho) too clunky to handle easily on a daily basis without building a big library of quirks and GUIDs and snippets as well as a growing understanding of all the pitfalls and requirements needed for individual features.

The goal is to make this easier for day-to-day use, to simplify the input and to feed back good information if not successful. Teams evolves constantly, so does this Module. Current release cadence:

  • Releases monthly or quarterly dependent on requirement
  • PreReleases as required (no separate path, just between releases)

Installation

# Release
Install-Module TeamsFunctions

# PreRelease
Install-Module TeamsFunctions -AllowPrerelease

Content

  • Consistently handling Sessions Connection to AzureAd and MicrosoftTeams
  • Improving Admin Authorisation with Privileged Identity Management Role Activation
  • Improving User Administration for Licensing, Direct Routing and Calling Plans
  • Enabling Administration for Common Area Phones, Analog Contact Objects, etc.(WIP)
  • Improving Migration and Enablement tasks for Teams Users' Voice Configuration
  • Improving Teams Resource Accounts, Call Queues and Auto Attendants
  • Improving Day-to-day Administration with little helpers

Documentation

  • All help is available in /docs
  • General overview: about_TeamsFunctions
  • The aliases: about_TeamsFunctionsAliases
  • Individual about_-Files for each Topic have been created
  • External Help is available as XML
  • Markdown files for all CmdLets created automatically with PlatyPS and updated with each Version
  • My blog will contain updates and explanations from time to time.
  • A breakdown of the Change log for Major Versions can be found in VERSION.md
  • A detailed breakdown of changes for Pre-Release Versions is recorded in VERSION-prerelease.md

Development

Component Status

General Documentation - GitHub PowerShell Gallery - TeamsFunctions
Release GitHubRelease Downloads
Build Build BuildWorkflow Issues
Functions Public Private Live RC BETA ALPHA
Pester Result Passed Failed Skipped NotRun CodeCoverage

Current Focus

  • Performance improvements, bug fixing and more testing
  • Adding Functional improvements to lookup
  • Adding individual Scripts to ease admin tasks
  • TeamsCommonAreaPhone CmdLets (Testing)
  • TeamsAnalogDevice CmdLets (Design & Build; not started yet)

Extension plans

  • Figuring out Pester, Writing proper Test scenarios
  • Adding recently introduced features for Call Queues (Forward to Channel) and Auto Attendants (Call Target: Announcement)
  • Standing up a full CI/CD Pipeline with GitHub Actions (all is done manually presently)
  • Comparing backups, changed elements for Change control... Looking at Lee Fords backup scripts :)

Maintenance Mode

The main development is now complete, though there are still a lot of elements I would want to add. Eventually TeamsFunctions will go into maintenance mode and I will try to refactor the whole module using MgGraph instead of AzureAd. In doing so, I will revisit a few (shall we say misguided) design decisions, for example the proper implementation of SemVer for starters. This project I have dubbed Orbit and I want to add other tools (like Martin Heusser's Call Flow Visualizer) and others into a better bundle.

Limitations

  • Privileged Identity Management
    • Implementation requires the Preview-Version of the AzureAd Module.
    • Privileged Admin Groups cannot be queried via PowerShell yet.
    • Functionality of PowerShell CmdLets is not congruent with PIM blade in Azure Ad Admin Center.
  • Testing: Currently, only limited Pester tests are available for the Module and select functions. No Pester tests exist for Functions that require a Session to AzureAd or MicrosoftTeams - I cannot figure them out yet. All Testing is done with VScode and Terminal manually.

Final Word

I hope you enjoy using this module and its functions as much as I do :)

David

About

Functions for the Teams Backend, Voice and Migration

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PowerShell 100.0%