Speaking & Being Interviewed At Microsoft Future Decoded 2019

On Tuesday and Wednesday this week (2nd & 3rd of October) I attended Microsoft Future Decoded at the ExCel in London, UK.

For those of you who haven’t heard of Future Decoded or haven’t attended one before, I’ll give you a brief overview of the event below:

Microsoft Future Decoded is a 2 day event that is hosted in the ExCel in London, UK. The event is focused around enlightening business and technical decision makers about what the future looks like for themselves, their businesses and potential customers they work with or for. The event is not as technically focused like other events Microsoft host like Ignite/Ignite The Tour. This years focus areas where around AI, ML and Tech For Good.

Generally the event is a great chance to network with others in the industry, vendors and partners; let alone attending sessions and absorbing all of the latest a greatest announcements!

Why Was I There…?

This year I was attending both as an attendee, to see some of the keynotes and the breakout sessions, and also to assist with “stand duty” (as it’s often referred too) for the company I work for; CDW UK

I also had the privilege of presenting a talk this year in one of the expo breakout theatres for fellow attendees.

My Talk

As mentioned above, I was also presenting a talk this year at the event. I was actually asked by my company if I’d like to talk a few weeks ago at this event and I jumped at the chance.

This year Microsoft wanted the talks to be focused around the key points of this years event, AI, ML & Tech For Good. However these areas are not something I felt I could create a talk on in the time I had, so I took a different approach.

My talk title this years was “IaaS & PaaS – The Perfect Partnership”.

My approach for the talk was to explain why Azure is still the best place to run those IaaS & PaaS workloads, due to all of the AI & ML that Microsoft invest in and use to deliver the various services under these areas. I covered things like:

  • Project Tardigrade
  • Live Migration in Azure Compute
  • Azure SQL Offerings
  • Much more…

I was set to talk on the second day of the event, Wednesday, at 15:15 until 15:40 in one of the expo theatres. As it was near the end of the second day, I wasn’t expecting a lot of attendees. But to my pleasant surprise, there was only standing room available as one of my colleagues and friends, Anthony, tweeted about:

The 25 minutes flew by and all of the notes I spent hours refining and putting with my PowerPoint, I never even read! Amazing how the brain engages when you are in the moment!

I thoroughly enjoyed seeing so many people wanting to hear what I had to say about Azure. Also it was great to see so many people getting involved and coming to ask questions after the talk; this is something I highly recommend to all talk attendees, us presenters honestly don’t mind and generally are really happy to help answer/clarify any questions you may have. So next time you attend a talk, go say hi or ask a question to the presenter/s, networking is key in this industry!

Below are some more photos of me presenting:

My presentation can be download here, if you are interested.

Channel Partner Insight Interview

Near the end of Day 1, Nima Green, a reporter for Channel Partner Insight asked if id be happy to be interviewed and provide my insight into the event so far and also the Microsoft Partner world based on recent announcements etc…

I will just provide the link to the video below instead of detailing the interview. So click here to see what I had to say.


Like, Share, Follow!

Finding The License Key For SQL Server Reporting Services

A very common question I seem to get from customers, colleagues & friends in the Azure community is “Where do I find the product key for SQL Server Reporting Services, if I’m using PAYG licensing from Azure?”.

And if I’m honest this is a very good question, as you never get shown the product key in the Azure portal when deploying and there is no command you can run via PowerShell or AZ CLI to get the key.

However finding the key is actually very easy and isn’t just applicable to Azure, so you can use option 1 below on any SQL server to find the product key.

I’ll assume you know how to download and install the latest version of SSRS. But here is a handy link to the download page if not. Download SSRS 2017.

So lets get into the 2 methods you can use to find the product key on an Azure IaaS SQL VM deployed using a marketplace image on the PAYG licensing model.

Option 1 – Using The SQL Server Setup Wizard

  1. Connect to and login to your newly deployed SQL IaaS VM via RDP
  2. Open Windows Explorer and navigate to the following path: ‘C:\SQLServerFull\’
  3. Locate ‘Setup.exe’ and double click on it to launch the setup wizard
  4. Select the ‘Maintenance’ pane from the left hand side menu and then click on ‘Edition Upgrade’
  5. The ‘Edition Upgrade’ wizard will launch after a few moments and will display a product key

This is the product key that you require and has been used to install/license the SQL Database Engine that is running on this VM. Copy this key to a notepad file and then cancel all of the wizards and close the setup launcher.

Then launch your SSRS installation wizard and use the key you have copied to a notepad file.

Option 2 – Extract Key From DeafultSetup.ini

  1. Connect to and login to your newly deployed SQL IaaS VM via RDP
  2. Open Windows Explorer and navigate to the following path: ‘C:\SQLServerFull\x64’
  3. Locate a file called ‘DefaultSetup.ini’ it may just be shown as ‘DefaultSetup’ if you don’t have file extensions shown. Double click on this file and open it with Notepad.
  4. Notepad will then display the contents of the .ini file and within this the product key is shown next to “PID=”

Again this is the product key that you require and has been used to install/license the SQL Database Engine that is running on this VM. Copy this key to a notepad file and then close the ‘DefaultSetup.ini’ file without making any changes to it and saving them.

Then launch your SSRS installation wizard and use the key you have copied to a new notepad file.


Hopefully this article will help you all out at some point in the future. It’s a curve ball that’s come my way a few times and took me a bit of research to find the above methods.

Until next time!

Like, Share, Follow!

AD DS DC’s In Azure

This week I received a couple of queries from clients around Active Directory in Azure and more specifically how they should handle/manage their Domain Controller IaaS VMs in Azure.

Now I have seen hundreds of IaaS VMs in Azure as Domain Controllers, it’s something that goes into the majority of my designs for clients today; it’s like a natural reaction/muscle memory for me.

However, these questions from my client made me take a step back and take a deep dive into Active Directory again, something I haven’t done in a few years, and review the recommendations and best practices for running DCs in Azure.

The Questions…

There were only 2 questions that got me thinking about this topic, they were:

  1. Should we place the Active Directory installation (database, logs & SYSVOL) on a separate data disk with caching disabled?
  2. Can we shut down the DC IaaS VM from the portal using the stop button as we do for other IaaS VMs?

The Answers…

So some of you may be thinking that these questions are pretty simple to answer and to some extent you are correct. However taking the time to check and investigate the answers to these questions and application specific best practices from time to time is never a bad idea.

Below I’ll answer each question and break it down as to what you should/shouldn’t do.

Question 1 – Separate Data disk For AD Data WITH No Caching

Now this topic isn’t actually specifically related to Azure only, it actually applies to any virtualisation platform (vSphere, Hyper-V, Xen Server, AWS EC2, etc…).

In short the answer is yes, store the AD data on a separate data disk and disable read and write caching.

The why is actually more to do with the caching element of the question. The theory being that if write caching is enabled at the hypervisor level for the data disk (or any disk where AD data is stored for that matter) there is a chance that if the VM is powered off abruptly for any reason, some changes are still waiting to be written/committed to the disk and therefore this can lead to issues like USN rollbacks.

So I would add an additional data disk to your Azure IaaS DC VMs when building them to place the AD install upon.

Create Managed Disk

Attach Disk To VM & Disable Caching

If you have already deployed your DCs and promoted them etc… I would suggest building new ones in Azure with the additional data disk and just following the process to promote/demote DCs. You can migrate the database etc… manually but, why I add the risk when it’s so easy to just build new and promote/demote.

Question 2 – SHutting down DC IaaS VM Via Portal stop button

So this one is a little more interesting and again isn’t exclusively related to Azure and applies to any virtualised DC depending on the hypervisor platform it runs upon.

However keeping this strictly Azure focused, Microsoft advise explicitly on the docs website that you should NOT shut down IaaS DCs via the portal. You can check that Microsoft page here.

Shutting down the VM via the portal causes a chain of events to occur when that VM is eventually powered back on.

The first thing that happens is the VM-Generation ID is reset/changed. The VM-Generation ID is stored as an attribute of the DCs computer object within the AD database called msDS-GenerationID upon promotion.

When a DC is started up and AD is starting up, it checks the VM-Generation ID against the msDS-GenerationID that it has stored in it’s database against the DCs computer object. If that value is not the same, the DC resets the Invocation ID and discards its RID pool; adding to the chain reaction!

Thankfully since Windows Server 2012 the VM-Generation ID is supported and stored as an attribute as explained above. So now AD knows exactly what to do when the VM-Generation ID changes to prevent a USN rollback and/or give out duplicate SIDs etc… Clearly none of us want these things to happen, so lets all take a moment and thank Microsoft for this feature since Windows Server 2012.

Anyway, now that AD has detected the VM-Generation ID and reset the Invocation ID it will clear the DCs RID pool and update the msDS-GenerationID on the DCs computer object with the new  VM-Generation ID. It will also perform a non-authoritative restore on the affected DC to replicate the SYSVOL and other information from another DC within the domain.

This all happens automatically to ensure that the integrity of the domain stays in tact and no duplicate SIDs are given out and also to keep the replication topology in tact.

Regardless that this all happens automatically, it’s still not a healthy thing to be happening to a DC and it is certainly something that can be avoided

So to avoid it all that you need to do is shut down the DC IaaS VM via the guest OS instead of clicking stop in the Azure portal. That’s honestly it. However you can sleep easily knowing that if your DC is at least Windows Server 2012 it will protect you if the VM gets shut down abruptly!

One thing to be aware of when shutting any VM down via the guest OS instead of stopping it via the Azure portal is that the VM will not enter the deallocated state once its shut down. It will just show a status of stopped. This will mean that you will still be charged for the VM compute costs etc… as if the VM was still powered on.

Although this does mean that the VM-Generation ID will not change when you start the VM back on!

Another point to consider is that your VM is unlikely to be turned off abruptly and even so you should be deploying at least 2 DCs in an Availability Set using managed disk to give your AD services the best SLA possible from Azure.


Again there is a lot of information to take in here. But I feel it’s a vital topic to cover as nearly every deployment will have a IaaS DC in it somewhere. Also to be prepared for the questions above from a client, your boss or an AD specialist is always best, rather than having to research the answer when asked.

Any questions on this topic please leave a comment or drop me a tweet and I’ll happily get back to you.

Like, Share, Follow!

© 2019 Jack Tracey

Theme by Anders NorénUp ↑