In my post “Get-WeatherLinkData.ps1” I mentioned we use the free version of Paessler’s PRTG Network Monitor to monitor all we have here. It’s a great little monitoring platform, and we use it to not only keep an eye on the servers and various web-pages we run, but also track and trend our weather.

After suffering poor service from a previous ISP a few years ago, we started running a script utilising H.Merijn Brand’s Perl Speedtest CLI on our PRTG server to keep a track of speeds. It did the job but meant that Perl needed to be installed on the server.

It thus caught our eye when we saw recently that the world standard “” by Ookla has spawned an API.

And thus, New-OoklaSpeedTest.ps1 was born.

Continue reading ‘New-OoklaSpeedTest.ps1’ »

Make Microsoft Teams shortcuts global

I live for keyboard shortcuts.

Microsoft Teams has plenty of useful keyboard shortcuts, but if you’re running a complex meeting and maybe using OBS Studio like I did recently, they’re probably not going to work. Why’s that? They’re not ‘global’ – they’ll only work when the Teams client has the focus.

The fix is relatively simple, disguised as the open-source utility AutoHotkey, or AHK.

Continue reading ‘Make Microsoft Teams shortcuts global’ »

Inject OBS Studio into Microsoft Teams

I recently co-hosted the May “Sydney UC” Meetup with fellow MVP Craig Chiffers. We normally run these at a conferencing centre in the middle of the Sydney CBD, but circumstances dictated this one be held virtually. Naturally it was going to be over Microsoft Teams.

You have two options for a Teams Meeting – a normal “in-tenant” meeting, or a Live Event.

Microsoft Teams Live Events are ideal for larger “town hall” style one-to-many meetings, more like a city council meeting or other “broadcast” event. The event is streamed via an Azure Content Delivery Network (CDN), and as such there’s a lag between your presentation and its reception that prevents real-time interaction with participants.

Sydney UC is a more interactive and collaborative environment, so we opted to run the event in the tenant. This gave our participants the ability to interact more naturally with the presenters, but perhaps at the expense of some control of the Meetup.

My partner Rocky had been experimenting with Open Broadcaster Software (aka OBS Studio) of late, and we thought the Meetup might be a good opportunity to see if we could add some more of a “pro” feel to the Meetup without compromising its intimacy, and address some other issues.

Continue reading ‘Inject OBS Studio into Microsoft Teams’ »

List all SfBS & SfBO policies by type

Here’s a “one-liner” I came up with this week that dumps ALL of the SfB policies in your system ordered by type:

PS C:\> Get-Command -Module SkypeForBusiness Get-Cs*Policy | where-object {$_.Name -ne "Get-CsEffectivePolicy"} | ForEach { invoke-expression $  } | ft @{Label="Policy type"; Expression={($_.getType()).ToString().Split('.')[-1]}}, identity -auto

This is what it looks like here in the GIS lab:

Continue reading ‘List all SfBS & SfBO policies by type’ »

SfB 2015 Server Update – May 2020

It’s been a whole nine months since we saw an update for Skype for Business Server. That was CU10 HF1.

This is build 6.0.9319.580, and it updated seven components on my Standard Edition Front-End.

What’s Fixed?

This cumulative update includes a defense in depth fix and enables Location-Based Routing to support the Skype for Business mobile clients. It also fixes the following issues:

  • Kb 4507230 Support LBR and branch site voice resiliency conflicting requirements in Skype for Business Server 2015
  • Kb 4538703 Increase characters limit for Notification URI in Skype for Business Server 2015 Control Panel and PowerShell
  • Kb 4537395 SQL Server Agent LcsLog purge job fails with error in certain scenarios in Skype for Business Server 2015
  • Kb 4525499 Call forwarding and voice mail not working for LBR users who’re signed out of all clients in Skype for Business Server 2019 and 2015
  • Kb 4537396 IM filter doesn’t work if network path has host server name in Skype for Business Server 2015
  • Kb 4525500 Users who’re not Enterprise Voice enabled can dial out when PreventPSTNTollBypass is true in Skype for Business Server 2015
  • Kb 4538701 Conference call dropped after 28 or 56 minutes joining from Cisco phone in Skype for Business Server 2015
  • Kb 4537394 UCWA unhandled exception – InvalidDataException in Skype for Business Server 2015
  • Kb 4537398 PII data (IM contents of push notification) is shown in Skype for Business Server 2015 UCWA mobile clients
  • Kb 4549672 Update set-cookie response header to use SameSite=none in Skype for Business Server 2015 UCWA
  • Kb 4537397 Wrong time zone in Skype for Business Web Scheduler in Skype for Business Server 2015
  • Kb 4538702 Skype for Business for Mac or iOS clients doesn’t show PSTN callers in the meeting participants list in Skype for Business Server 2015
  • Kb 4538700 PSTN call transfer fails if agent anonymity is enabled in Skype for Business Server 2015
  • Kb 4526182 In-a-meeting and Presenting presence states are available for UCWA clients in Skype for Business Server 2019 and 2015
  • Kb 4538699 Wrong end point shown for a transfer call in Skype for Business Server 2015

What’s New?

Nothing noted. No cmdlets have been added to the SfB module in this update.

Continue reading ‘SfB 2015 Server Update – May 2020’ »

Migrating Gallery.TechNet to GitHub made easier

TL;DR: My “New-ObfuscatedFile.ps1” script uses a find/replace CSV file to make multiple substitutions in a text file in one pass. It can be easily repurposed to turn HTML into MarkDown.

Microsoft’s site will be sorely missed when it’s closed later in the year.

It’s been a fantastic repository of tools, documents and utilities, and no one place on the Internet will replace it.

As it stands today, the “Lync” category has 469 offerings, and across the entire site a total of 25947 items are there for the unearthing, all designed to make your life easier.

I see my fellow MVPs Luca, Stale and Shane take top billing, with download numbers I can only dream of.

Those guys, like me and many others are now faced with re-homing all this content somewhere else.

For our scripts, that’s GitHub – but how to get everything across?

Continue reading ‘Migrating Gallery.TechNet to GitHub made easier’ »

Use a UI Flow to automate web forms – Pt.2

TL;DR: Part 2: add an On-premises Data Gateway & trigger a “UI Flow” via a web hook, initiated by a “flic” smart button.

In my last post I demonstrated how you can use the new “UI Automation” functionality inside Power Automate (pka Microsoft Flow) to fill out a web form. In that example I automated a report of a shopping trolley abandoned out the front of home.

This post adds the trigger control. Here I’ll take you through adding the required “on-premises data gateway” and add a web-hook to fire the flow, triggered by one of our “flic” smart buttons. With one of these located near the door we’ll be able to lazily submit a trolley report just by tapping it when we arrive home.

Continue reading ‘Use a UI Flow to automate web forms – Pt.2’ »

Use a UI Flow to automate web forms

TL;DR: I walk you through the entire process of creating a “UI Flow” in Power Automate to fill out and submit a web form.

The headquarters of the Greiginsydney empire is located quite close to a store of one of Australia’s major supermarket chains (Coles).

I walk there and only ever shop for as much as I can carry home, but some of my neighbours aren’t either as fit or as considerate, and we regularly find shopping trolleys (which aren’t meant to leave the shopping centre) abandoned in our driveway and the immediate surrounds.

Coles has a website where you can report dumped trolleys, but the form is relatively complicated. It doesn’t just POST your address when you click Submit, but creates a complicated cookie with the converted lat/long of your location. I wasn’t up for trying to simulate that in code, and one of my MVP peers suggested it sounded like a great opportunity to create a UI flow.

Turns out it’s relatively simple to do, using the new “UI Automation” functionality inside Power Automate (pka Microsoft Flow).

In Part 2 next weekend I’ll add a web-hook to fire the flow, triggered by one of our “flic” smart buttons. With one of these located near the door I’ll be able to submit a trolley report just by tapping it when I walk in the door.

This weekend we’ll create the Flow.
Continue reading ‘Use a UI Flow to automate web forms’ »

SfBS 2019 CU2 HF1 March 2020

Things have been a bit quiet on the updates front of late, and today’s hotfix for SfB Server 2019 barely caused a ripple. This update builds upon December’s CU2, only updating two components on my SE Front-End. It takes the build from 7.0.2046.151 to 7.0.2046.216.

What’s Fixed?

  • Kb 4552637 “Fatal error during installation” error when uninstalling MacpWebComponents.msp in Skype for Business Server 2019.

Continue reading ‘SfBS 2019 CU2 HF1 March 2020’ »

Lync 2010 client version summary

I’ve long stopped blogging Lync 2010 client versions, but I recently had cause to go for a bit of a search, and there were some I encountered in the wild that I’d not previously documented here.

Here are a few more versions and some links. This isn’t a comprehensive list, but is intended to augment those that will be revealed if you use the Search function on the blog.

Some of the below was sourced from Andrew’s blog, and others from Frank Carius.

As best I can tell, 4.0.7577.4540 from Sept 2017 remains the last update to this long-obsolete client.

4.0.7577.4540 Sept 2017 – Security Update

4.0.7577.4534 June 2017

4.0.7577.4525 March 2017


4.0.7577.4486 Dec 2015

4.0.7577.4415 Dec 2013 – Security Update

– Greig,
18th March 2020.