Category Archives: Projects

Get-CSUserSessionDomains: Extract a list of domains used in communication from Skype for Business Online user session data

Get-CSUserSessionDomains is a PowerShell script leveraging the Get-CSUserSession cmdlet in Skype for Business Online to extract a list of unique domains used in communication from user session data. The Get-CSUserSession cmdlet exposes session details for Registration/IM/Audio/Conference/Video, unlike the Skype for Business Online Admin Portal corresponding tools. Get-CSUserSessionDomains which can be found on the TechNet Gallery.… Read More »

Get-O365UsageReports: Use Graph to pull all Office 365 Usage Reports to Excel

In December 2017, the new Microsoft Graph reporting APIs were announced: https://techcommunity.microsoft.com/t5/Office-365-Blog/Announcing-the-General-Availability-of-Microsoft-Graph-reporting/ba-p/137838, also in this announcement was the deprecation of the Office 365 Reporting Web Service: ConnectionbyClientType ConnectionbyClientTypeDetail CsActiveUser CsAVConferenceTime CsP2PAVTime CsConference CsP2PSession GroupActivity MailboxActivity GroupActivity MailboxUsage MailboxUsageDetail StaleMailbox StaleMailboxDetail) Details on working with the Office 365 Usage reports via v1.0 API in Microsoft Graph:… Read More »

Check-AzureServicePrincipals: Using Graph via PowerShell to determine if an Azure Service Principal is a Microsoft Known ID

While writing the Manage-AzureAppRegistration script (http://realtimeuc.com/2017/12/manage-azureappregistration/), I found some interesting problems setting Oauth2Permissions. My original code would lookup the Service Principal for an API to assist with determining the ID for the specific role I was adding. The problem quickly became apparent that not all Tenants had the same list of Microsoft Service Principals and… Read More »

Manage-AzureAppRegistration: Using Graph via PowerShell to create a native Azure app registration for PowerShell to access Graph

When accessing some of the Microsoft Graph API endpoints, you can get away with leveraging the well known Client ID reserved for PowerShell: “1950a258-227b-4e31-a9cf-717495945fc2”. Of course luck would have it, the few items I wanted to access (Microsoft Graph Reporting API and Office 365 Management Activity API) are not granted to the PowerShell Client ID.… Read More »

MultiTeams – Easily run multiple instances of MS Teams web client

Last week Microsoft Teams Guest Access became generally available (https://blogs.office.com/en-us/2017/09/11/expand-your-collaboration-with-guest-access-in-microsoft-teams). This feature is not meant to replace Federation (Please Vote!), but I’m using this as a stop gap until Federation is available. After working with a few Guest Access Teams, it quickly became apparent that no matter how often I switched between accounts, I wasn’t… Read More »

Get-CSUserSessionGUI

Earlier this month I blogged about the Session Details(Preview) in the Skype for Business Online admin portal, which can be found at: http://realtimeuc.com/2016/10/sfbo-session-details-preview/ a welcome addition to the portal! On the flip side I do prefer managing my tenants via PowerShell vs. hanging out in the browser. Here comes the Get-CSUserSession cmdlet. One thing to… Read More »

Invoke-SFBContacts

A few months ago my SIP address was changing and was looking for a way of exporting/importing my contact list. I wanted a solution to work no matter if the Lync/Skype for Business environment was on-premises, hosted or online. This led me down the path of playing with the Lync 2013 Client SDK: https://www.microsoft.com/en-ca/download/details.aspx?id=36824. If… Read More »

Get-CSInstalledClient

While working on some slides for my upcoming session: Path to Skype for Business client deployment on The Skype Show: http://www.theskypeshow.com/episode-3-backing-up-desktop-client-and-security/ I wanted to come up with a few lines of code to list how the Skype for Business/Lync client was deployed to a computer. There’s quite a few options these days standalone, basic, part… Read More »

Bulk provisioning Office 365 licenses and services script

Working with a client to ease the transition of Office 2010 (MSI) using KMS licensing to Office 2013/2016 (Click-to-Run) with subscription licensing to use the new Skype for Business client. It quickly became apparent that enabling thousands of globally dispersed users for a certain feature set via Office 365 Admin Portal wasn’t going to work.… Read More »

Test-IPV (Internet Point of View) PowerShell GUI

Test-IPV is a PowerShell script leveraging the LyncValidator back-end Web Services APIs ( http://masteringlync.com/2014/07/15/using-tcpudp-port-checker-web-service/ ) to provide an Internet Point of View collection of tests. Commands run from console or GUI wrapper. Although leveraging the LyncValidator APIs, this tool is not exclusive to testing Lync. Video Demos: Test-IPV GUI Test-IPV Console Tests: Port Checker: Testing… Read More »