Posts

Showing posts from 2019

Skype Updater - Success.... or not....

Another item that, on a good day, you pick up straight away. After a long day it can lead to throwing the keyboard at the screen. When running "SkypeServerUpdateInstaller.exe" you might see: SUCCESS: Found the main process. and then back to the command prompt. W. T. F. the answer is deceptively simple. Windows Update is running the installer in the background. For whatever reason (admin approved, WSUS download etc) the skype installer is there, stopped at the dialogue box with crosses and ticks. except you cant see it. To fix, just kill the process SkypeServerUpdateInstaller.exe Simples! (on a good day.....)

The downside of a warm running home lab

One of the upsides of a homelab is the heat generated on cold days. The downside is that often means its not used during the warm summer (?) months. Downside? Well if you have multiple Domain Controllers and most of them off during the year, you can get issues with replication when they all fire up again. Error 8606 - Insufficient attributes were given to create an object. This object may not exist because it may have been deleted and already garbage collected. Getting rid of lingering objects can be a pain. Step forward the aptly named LoL tool :) https://support.microsoft.com/en-gb/help/3141939/description-of-the-lingering-object-liquidator-tool Another issue may be tombestone lifetime. You can crank it up using ADSI edit and kick start the process again. Remember to reduce it afterwards. https://support.microsoft.com/en-gb/help/2020053/troubleshooting-ad-replication-error-8614-the-active-directory-cannot

Office 365 Service Health updated and a change in service

Finally a quiet weekend! So I dived into O365 SH code and tweaked some annoyances. Links to the Wall have been added to the 'logs' tab. I've also split off diagnostics pages and linked in the same place. At the same time I noticed an error popping up during execution. I (foolishly, but not uneexpectedly) hadnt thought to log it. Some exception catching and logging later, it shows the Microsoft have renamed 'Office Online' service to 'Office for the Web' Note to self - check regularly (and add exception catching)

Office 365 Service Health Overview

The Office 365 Service Health scripts have grown from a simple script to a collections of scripts with central configuration files. This can make it look quite complicated but its straight forward. pre-reqs: An Azure App with Service Health (Office 365 management API), Reports.Read.All (Graph API) and Organization.Read.All (Graph API) A web service to host the html output a task scheduler to run the command lines on a regular basis. Azure AD App Lee Ford (others great bloggers also available!) has a great step-by-step article on how to create an app, so theres no point in reinventing the wheel!: https://www.lee-ford.co.uk/get-latest-office-365-service-status-with-flow-or-powershell/ Its also worth looking at consuming the App in Flow and pushing to teams - having an 'in-cloud' monitoring solution can help pinpoint local issue (ie proxy, internet access). Similarly having an on-premises solution allows you to test from a user perspective and also works during teams/flow

Office 365 Service Health - new features

Image
I've been busy working on the office 365 Service Health script and i've added some new features. Its actually becomming a bit of a handful, so I'll need to cut back or split out the functionality to keep it relevant. Azure App will require the following permissions: Graph API : Organization.Read.All (licences) Graph API: Reports.Read.All (Usage reports) Office 365 Management API: ServiceHealth.Read First though - New Features! Config files - I'm moving most values to configuration files. This allows for multiple tenants, test configurations etc. ProfileBuilder.ps1 - this ps1 script will update an existing config file with the new settings Monitor.ps1 - email alerting on new and closed incidents Office 365 Usage Reports (7day) - add in usage report permissions to your azure app graph API permissions and you can download the usage reports in CSV Dashboard - The animated gif below has a quick flick through the dashboard page. New features include Office 36

Office 365 Service Health monitoring - The Wall

Image
Many organisations (and some IT people) like to be able to see their tenant status quickly, without having to log into office 365, navigate to the health centre, expand a status (thats after you've justified being assigned permissions to view!) Can't I just see it in one place? Well, yes. yes you can. A PowerShell script retrieves your tenant health (via an azure app you create) and displays it in a CSS grid. (no tables!) I'll throw the script up on TechNet if I ever get enough points to allow me to publish...… /update - this was available as part of the service health suite of PowerShell scripts, however the Graph API no longer shows this level of detail :( https://github.com/JonathanChristie-BHIT/M365SH

Office 365 Service Health Reporting on premises

Image
Office 365 Service Health - PowerShell Script to generate HTML page with Service Health status and create local copies of the advisory and incident messages. All in one solution for up-to-date O365 service information. Update - non-ReportHTML version in the works So while the office 365 health center portal is great for reporting on tenant specific incidents, it can be a bit of a pain having to log in just to check. It can be even more of a pain to manage the message center reader role if you have hundreds of users who need access. And what happens when you have an outage and cant reach the portal? Who can monitor connectivity? Using some powershell and the ReportHTML module (although im not actually using the graphs and data tables, so I really should re-write it without) I've put together a simple dashboard (I'm not a web designer or graphics expert!). The powershell that generates the dashboard also logs new incidents to a new event log (O365 Health) and ema

Skype Online and MCOValidationError

These user counts are incorporated into the Lync ReportHTML  from the previous post: https://jc-nts.blogspot.com/2019/05/powershell-module-reporthtml.html While doing some housekeeping for a client, I noticed that the Interpreted User Type attribute in SfBO threw up some HybridOnpremSfBUserWithMCOValidationError accounts. The full list included: DirSyncSfBUser: On-premises users which have been assigned a SfB online licence DirSyncTeamsUser: On-premises users which have been assigned a Teams licence HybridOnlineSfBUser: A user created on-premises and migrated to SfBO HybridOnpremSfBUser: A user created on-premises and enabled on-premises for Lync/Skype HybridOnpremSfBUserWithDeletedLicenses: An on-premises user has a deleted office 365 SfB licence HybridOnpremSfBUserWithMCOValidationError: An on-premises user with a domain that is not valid in your synchronised tenant PureOnlineSfBUser: Online users which have been assigned a SfB licence PureOnlineTeamsUser: Online users

Lync, Teams and Office 365 PowerShell module ReportHTML

Image
So I found myself looking for some nice PowerShell reporting tools. The standard table with header format was looking a bit dated. After some investigation I found some decent output using the ReportHTML PowerShell module https://www.powershellgallery.com/packages/ReportHTML/1.4.1.2 So far, i've done some Essential system overview (Figure 1) Teams/Lync/SfBO reporting showing users enabled (doughnut chart), with used domains (user count), enabled user count, disabled user count, registered sip domains, policies in use (client, conferencing, external access etc), users online, on-premises (Figure 2) Domains in use, invalid domains (assigned to users presumably through script) which weren't valid in Lync. Online users in teams modes (another doughnut, with data table). Users online with various interpreted user types (to catch those who are enabled in cloud, sync'd account on premises, but not sip enabled on premises. for example!) Teams without owners, with gues

Flow - customising the HTML table

(updated  23 May 2019) Todays snippet - HTML tables in Microsoft Flow - creating spaces between columns. So i have created a flow to read the Message Center messages and incidents, and and post in teams. The HTML table element used to build a list of the messages works well, but there little option to format the table itself. One particularly annoying issues is the tables are all squished together. Not normally an issue for HTML rendering in outlook, when the output is sent via an email. Teams on the other hand, doesnt do as good a job. So - how to customise. Its a bodge, but it works. After creating the table, insert a compose step. Take the output from the table, and replace </th><th> with </th><th>&nbsp</th><th> This will insert a small header between columns the function is: replace(body('Create_HTML_Table'),' </th><th> ',' </th><th>&nbsp</th><th>') Similarly, you