Get-RibbonSbcUptime.ps1

Inspired by a question from John Cook on Twitter, I’ve taken my “Update-RibbonADCache.ps1” script, and through the magic of “Save As” we now have Get-RibbonSbcUptime.ps1.

Get-RibbonSbcUptime.ps1 invokes a REST login to your Sonus/Ribbon SBC 1k/2k/SWe-Lite and reports how long it’s been running: the CpuUptime.

It outputs to the pipeline either a timespan object, or a literal string in the same format the SBC displays on its System/Overview tab.

 

Continue reading ‘Get-RibbonSbcUptime.ps1’ »

Adventures with Import- and Update-CsUserData Pt.1

I’ve spent a lot of time this year working with the <verb>-CsUserData commandlets in SfB, and it’s been an interesting time.

This is part 1 in a series where I document the traps I’ve fallen into with the Import-CsUserData and Update-CsUserData commands in particular.

Part 1 – Update-CsUserData fails on bad data.

Background

My customer is a LARGE deployment, and they’re moving from Lync 2010 in a user forest to SfB 2015 in a resource forest. In an effort to make this transition as seamless as possible for the users, the plan is to migrate all their contacts (their “buddies”) from the existing platform to the new.

The approach we’ve taken breaks the process into multiple steps:

  1. Export-CsUserdata on Lync.
  2. Use a bespoke PowerShell script to break down the single data export (all 10+ Gig of it) into a contact list XML file for each user.
  3. Use Convert-CsUserData and the “-TargetVersion Current” switch to convert each user’s file from Lync’s XML to SfB’s ZIP format.
  4. Sanity-check each user’s file with “Update-CsUserData -TestMode”.
  5. Import the data. We initially chose “Update-CsUserData” and fell into a hole, so we changed to “Import-CsUserData” – and fell into a different one.

This series will document those bugs and hopefully prevent others from earning the same scars.

Continue reading ‘Adventures with Import- and Update-CsUserData Pt.1’ »

Cannot Start Microsoft Outlook

I’ve been travelling a lot for work this year, and when I’m away from home I generally leave my home PC on.

It was upon returning from a work trip that I found Windows had pushed an update to it, and it had restarted – and from that moment, Outlook was broken.

Cannot start Microsoft Outlook. Cannot open the Outlook window. The set of folders cannot be opened. The attempt to log on to Microsoft Exchange has failed.

I tried all the usual suspects thinking this was going to be a quick fix:

  1. Repair Office.
  2. Run Outlook in Safe mode. (Start / Run / outlook.exe /safemode).
  3. Reset the nav pane (Start / Run / outlook.exe /resetnavpane).
  4. Create a new profile. (Start / Control Panel / Mail / Show Profiles / Add…)
  5. Ran the “Outlook Support & Recovery Assistant“.

No dice.
Continue reading ‘Cannot Start Microsoft Outlook’ »

SFBS 2019 CU1 HF1 – September 2019

To borrow from the tourist trap t-shirt, “I was hoping for a CU, and and all I got was this lousy HF”. Oh well, any fix is a good fix. This update builds upon July’s CU1, updating only two components on my SE Front-End. It takes the build from 7.0.2046.123 to 7.0.2046.143.

What’s Fixed?

  • Kb 4518403 Event ID 25075 on Mediation server regarding SipHealthMonitor not being configured in Skype for Business Server 2019.
  • Kb 4518404 Call Queue agent can’t transfer PSTN call to internal Skype for Business Online user from different SIP domain in Skype for Business Server 2019.

What’s New?

Nothing noted. There are no new cmdlets added in this update.

What’s Changed?

Nothing noted.

Known Issues

Nothing noted.

Continue reading ‘SFBS 2019 CU1 HF1 – September 2019’ »

Microsoft Teams Deep-Dive – Canberra follow-up

I presented a Teams Deep-Dive session at Microsoft’s office in Canberra this week.

At the end there were a few links I wanted to share with the participants, and a few homework questions I wanted to research and respond to. A blog post seemed the obvious way to provide them with that info.

The below will be of greatest relevance to the attendees, but even if you weren’t there I think you’ll find some bits of interest.

Connectivity.office.com

Continue reading ‘Microsoft Teams Deep-Dive – Canberra follow-up’ »

SfB 2015 Server Update – August 2019

Hot on the heels of last month’s CU10 comes CU10 HF1 – the “whoops” fix-up release.

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

What’s Fixed?

  • 4518680 Can’t transfer external calls by using Polycom VVX phones in Skype for Business Server 2015
  • 4518679 Skype meeting disconnection due to missing session refresh in Skype for Business Server 2015

Note The fix for the following issue is reverted and it is not included in this cumulative update.

  • KB 4507230 Support LBR and branch site voice resiliency conflicting requirements 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 – August 2019’ »

Cscp logs Event 35009 – “Authorization Failed”

My colleagues and I recently encountered an intermittent problem with the CSCP reporting “Authorization Failed” when you tried to sign in.

This was a Skype for Business 2015 Enterprise Edition pool, and so it didn’t take long to localise the issue to just one Front-End server.

Each failed attempt dropped an instance of event 35009 into the “Lync Server” log:

Remote PowerShell cannot create InitialSessionState for user S-1-5-20. Cause of failure: Cannot find user in Active Directory with the following SAM account name: "S-1-5-20"

That SID belongs to the NT Authority / Network Service – and when we succeed on another machine, we see the traces* correctly trying to sign in as the SID of my admin account.

(* The reference to PowerShell in the log gave us cause to review the Centralised Logging for the “PowershellWebService” scenario, but it didn’t seem to add a great deal of value.)

A successful sign-in also drops the more friendly 35008 into the log:

Continue reading ‘Cscp logs Event 35009 – “Authorization Failed”’ »

Review: Poly EagleEye Mini USB camera

I’m a little late to get my mitts on an EagleEye Mini USB camera, but circumstances recently gave me cause to take a closer look.

If you’ve not encountered it before, the Mini is a compact 1920×1080 HD USB camera, initially designed to slot into the top USB port on your VVX501 or 601, but nowadays also supported on a Trio with Visual+, and even on a PC or Mac.

Features

Poly’s website reports its features thus:

  • High-definition 1080p60 capture with true color hue saturation and brightness for the most accurate color rendition and life-like images
  • 4x electronic zoom and a 74-degree field of view
  • Simulcast video stream
  • Installs in seconds – no drivers needed

It’s officially a supported peripheral for Skype for Business video calls on a computer or video conferencing device.
Continue reading ‘Review: Poly EagleEye Mini USB camera’ »

New-ObfuscatedFile.ps1

 

I have the occasional need to send log files to Microsoft and other vendors from customers who have strict IT security requirements. These customers usually require all files be de-identified before they leave the premises, removing all host names and IP addresses.

This can be quite a tedious process, so I’ve created a small script file that edits a provided text file and:

  • uses a “find/replace” CSV file to replace all instances of sensitive text with replacement values.
  • obfuscates any unchanged IP addresses, replacing them with dummy text in the format “aa.bb.cc.nn”, where the “nn” is the same number where-ever that IP address is encountered in the document. (e.g. the third IP address that’s found in the file will be renamed “aa.bb.cc.3”).

At a minimum, you only need to provide an -InputFile. With only this, the script will replace all IP addresses with dummy values, then save a copy of the file with a “-new” suffix.

Continue reading ‘New-ObfuscatedFile.ps1’ »

Azure – Resource Provider Not Registered

I’ve been following one of Tom Morgan’s excellent tutorials on creating Bots for Microsoft Teams, and I hit an unexpected hurdle very early on in the process – but as it turns out, the fix was a simple one.

Resource provider 'Microsoft.BotService' not registered for the subscription

Fair enough, I say. Let’s register.

I navigated to All Services then searched for and selected Subscriptions, then selected my Subscription and Resource Providers. There were a lot there, so I filtered for microsoft.bot, only to be greeted by the news that I *was* already registered:

Seeing as I was already here and there was an option to Unregister, I went down that path. Refresh, wait a bit, Register and BOOM, I was back on the air.

The moral of the story? Even in the cloud, turning something off and back on again remains a viable fix.

Revision History

9th August 2019: This is the initial publication.
 

– G.