Skip to main content
Some sample PowerShell Scripts I used to automate and scale operations.\ Brief Explanation & Intent What it does:
Connects to Microsoft Teams and exports detailed voice/phone configuration for users. It’s smart — if you provide TeamsPhoneUserList.csv with a userPrincipalName column, it only checks those users. If that file isn’t there, it dumps the entire tenant.
Intent / Why you’d run this:
  1. Migration tracking — See who’s still on-prem vs Teams-only via HostingProvider and InterpretedUserType.
  2. License audits — Find users with Phone System licenses AssignedPlan but no LineURI = wasted money.
  3. Troubleshooting — One CSV with LineURI, DialPlan, OnlineVoiceRoutingPolicy, IsSipEnabled for helpdesk.
  4. Number inventory — Full list of DIDs assigned in LineURI for carrier porting or cleanup.
  5. Compliance reporting — Track WhenChanged, SoftDeletionTimeStamp for leavers and change control.
Brief Explanation & Intent

This is your “one-click Teams Phone onboarding”. Feed it lists of users → AD gets updated, licenses assigned, numbers enabled, policies applied, and you get an email proof with logs.