Blog Archive

Migrating a WordPress Site to Azure



There are a number of choices for hosting a simple website at little or no cost (other than the domain name registration).

I used Azure with years ago but when I wanted to secure my site using HTTPS the cost of the hosting plan was too high. I moved to GoDaddy but their low-cost plans at the time used an older version of PHP which caused my site to fail the UK government Cyber Essentials security certification. It was not possible to update the PHP version due to being on a shared hosting plan. I must admit I was shocked that the GoDaddy support team knew about this vulnerability which affected many customers and still had no timeline to update their hosting.

So I moved to guru.co.uk but recently moved the site back to Azure as I can tie it into a subscription offer I have for Visual Studio, so the hosting, although more expensive than guru.co.uk, effectively costs me nothing whilst I have Visual Studio. This applies only to dev/test sites and resources, not production sites.

The first step was to create a WordPress for Linux app service on Azure. I’m using app service plan S1 which provides features I require such as daily backups and SSL. I ensured both the source and target WordPress sites were updated to the latest version of WordPress. I installed the All-in-One WP Migration plugin onto both the guru and Azure sites. This tool migrates the entire site and is free if your site export squeezes in at under 512MB and you export/import via a file.

The migration worked well (surprisingly) and the imported site on Azure behaved as it should. It’s only a simple site which can now be accessed through http://sitename.azurewebsites.net. But there were a couple of issues to address.

The Domain Name

I want my site to be accessed through sitename.co.uk, not sitename.azurewebsites.net. Although I have seen several organisations use that DNS for their sites, I think it’s very unprofessional.

In the Azure blade menu for my app service, I click Custom Domains and I can add a custom domain which I registered. Use *.sitename.co.uk so links to both www.sitename.co.uk and just sitename.co.uk will work.

Azure Custom Domains

You’ll need to go through the process of proving ownership of the domain and that is explained well enough in the documentation.

Once you’ve done that, the custom domain will be listed and you can now navigate to your Azure hosted site using your own domain name. However, it won’t be secure.

The SSL Certificate

I want to secure my site so it can only be accessed through HTTPS. To do that I need to set up a certificate. I have the domain registered through Ionos.co.uk and the registration includes a free wildcard SSL certificate. I want to bind this to *.sitename.co.uk in order for both https://sitename.co.uk and https://www.sitename.co.uk to be secure.

Through the Ionos control panel for my domain, I could activate my certificate (providing me with a private key) and create and download a .PFX file using that private key.

Back in the Azure portal for my app service, I can click ‘Add binding’ next to my custom domain name and upload the new .pfx I just generated. I can set IP SSL binding or SNI SLL binding. After reading up a little on those, I chose SNI binding but I’m not a security expert so do you own due diligence as to which you choose.

Now my site is secure. If I type in sitename.co.uk or www.sitename.co.uk or http://sitename.co.uk I’ll be redirected to my Azure hosted site on HTTPS and I get the nice little secure padlock in the address bar with my certificate details.

The WordPress Site Health Report

I decide to run a WordPress Site Health report on my shiny new site. It came up with a few deactivated themes and plug-ins I should delete and also that my version of PHP was out of date.

Usually, you can update the platform through the Azure portal by going to the Configuration blade for the app service and selecting the General settings tab. But the blade for my app service didn’t list the stack settings. Puzzling.

The PHP Version

A bit of digging bought me to this blog page which described the same problem and the solution.

The WordPress for Linux app service template is maintained on GitHub and based on a Docker container with alpine linux and a specific version of PHP. This clearly doesn’t get updated as frequently as new PHP versions are released. Still didn’t explain why the Azure portal doesn’t show the stack settings.

This document details the CLI commands to run in order to view and update the PHP version on the app service. And once you’ve done that, not only does it keep WordPress Site Health happy, the stack settings now appear in the Azure portal.

Azure app service stack settings

So the world is good, my site has migrated onto Azure and it can be securely accessed through my custom domain name.


Protection from Phishing



You are no doubt aware of phishing attacks.  When emails arrive purporting to be from your bank or the tax office with an urgent message trying to prompt the recipient to click a login button.  The login button links to a web page that looks like the official organisation but of course, is not and the site is trying to gain your login information so they can use it on the legitimate site to access your account.

Spear-phishing is more targeted.  An example is where an email is sent from a person you know and potentially trust.  It might even be a senior figure at your company.  The email will ask for something quickly and again, his is an attempt to catch people whilst they are unwary and trick them into paying a fake invoice or revealing sensitive information. 

Spear Phishing Attack

Here is a snip from an email account and as you can see, we have a message flagged for high importance from the CEO.  Naturally we open it and want to action this straight away.

Outlook (and the Outlook web app) try to catch these attacks and warn the user in a clear way.


When we open the email (and before we even hit reply), Outlook displays a prominent warning that, although the name is similar to someone we receive email from regularly, the email address is unusual.

Outlook 2019 Spear Phishing Attack Warning


This is a great improvement and will hopefully help to reduce these attacks which are easy to fall prey to.


We Try Out Dictation in Outlook



Dictation is being made available to Office 365 applications including Outlook, PowerPoint and Word.  Currently it’s a first release feature but will gradually make its way into the mainstream release.  This is different from the Windows speech recognition feature where you can control your PC using speech and it’s also distinct from the Windows 10 dictation added to Windows last autumn (and only available for US English).

We loved the Learning Tools add-on for OneNote which included dication and a host of accessibility features and were keen to give dictation a whirl in Outlook.

Enabling Dictation in Office 365

Luckily, there’s very little to set-up as this is a feature that’s enabled by default in an office upgrade.  It uses Microsoft’s intelligent services (just like the automatic Alt-Text feature for inserted images) so you’ll need an internet connection – dictation can’t be used offline.  If you can’t get dictate to work, check Intelligent Services is enabled in the File, Options, General tab.  Your Office account must also be up to date.

Office 365 intelligent services in options

 

Using Office 365 Dictate in Outlook

In a new email, click the Dictate button on the right hand of the Ribbon Home tab.  The dropdown menu shows the languages this is available in.  This should default to your Windows locale and having UK English gives me a good excuse to test for UK spelling.

Office 365 dictation languages

 

It’s unlikely many built-in pc microphones will provide good results in a noisy office so I grabbed a Sennheiser headset and recorded the following:

My favourite colour is purple to wear and green to see.  I also like black but it’s not really a colour.
I still can’t get dictation to type pounds.
My favourite neighbour is the one down the road with the aluminium blinds.
I drank too much at a party and made a bit of an arse of myself.
It’s my mum’s birthday soon.

You need to specifically add punctuation by saying ‘full stop’ or ‘period’, etc. and also formatting such as ‘new line’ to add a carriage return.  I was speaking in a normal cadence but did add a bit of a Windsor accent.  This is the result:

Dictation in Outlook

 

Quite an impressive outcome.  I like the way offensive words are automatically censored.  Spelling is UK English.  Why it shortened road I don’t know and the final ‘I’ would have been capitalised had I said ‘new line’ to move to a different paragraph.  And I still can’t figure out how to get it to type a £ symbol.

You can say the following to add punctuation:

Period
Comma
Question mark
Exclamation point
Exclamation mark
New line
New paragraph
Semicolon
Colon
Open quote
Close quote
Open quotes
Close quotes

This should be a real boon for users and because it uses Microsoft’s online intelligent services with machine learning, recognition and accuracy should improve over time.


Get your Virtual New York Office



If you have clients around the world it can make a very favourable impression if you provide them with a number local to them.  It can cut their costs and gives your organisation a ‘just around the corner’ feel.  Imageframe is based in Reading, UK but we do have clients in the US so we set up a New York phone number which seamlessly transfers to our switchboard.  This costs roughly £181 per year per number and it also gives us additional UK calling minutes for the organisation.

Let’s start with the basics.

Skype for Business (either as standalone or part of an Office 365 plan) allows you to make calls to other Skype for Business and Teams users.  If you want to make calls to PSTN (public switched telephone network) phone numbers and you don’t already integrate with a phone service provider, Office 365 offers the Phone System and Calling Plan licences.   The Phone System licence provides cloud-based call-management features such as hold, forward, transfer and voicemail and will cost (as of the date of this post) £6+VAT per month as an add-on for Office 365 E1 or E3 plans.  Once you have assigned the Phone System licence to a user, you can add-on either the Domestic Calling Plan for national calls or the International Calling Plan for calls to both domestic and international numbers in hundred of countries.  Each of these provide a number of included minutes for calling per-month, rather like an included minutes mobile phone contract.

Purchase the Phone System and a Calling Plan licence and assign these to one of your Office 365 users.  Now you can choose their phone number from a wide choice of countries and cities.

The World is Your Oyster (almost).

You can transfer an existing landline number or choose from a selection of phone numbers for your call-enabled users.  Sign into the Office 365 admin centre and select the Skype for Business admin centre.

Link for the Skype for Business admin center

 

In the Skype for Business Admin Centre, you’ll be able to click on Voice and then Voice Users to see staff who have the phone system and calling plan licences assigned.

Skype for business phone system admin

 

You’ll also be able to obtain new numbers from the available countries.  The nice thing is that you can keep requesting new numbers until a funky one comes up like 0118 370 1234.  The image below is a selection of numbers for San Francisco (415).  We can acquire any of these or cancel and try again later to see a new selection.

 

Skype for business acquire new phone number

Once you have acquired numbers you can assign them to voice users.  There are two limitations here:

  1. the user’s country in their licence profile needs to match the country for the phone number you want to assign.
  2. you must set up an emergency location address for each country for which you acquire phone numbers.

We have a couple of unused Office 365 licences that we apply to demo personas.  These are ideal for assigning the international numbers.  View the user properties in the Office 365 admin centre, click on licensing and select edit.  Then change the user’s location in the drop-down at the top.  This will propagate to Skype for Business after a while and you can assign the US number.

Office 365 user licence properties

 

We have also set up a redundant emergency location address for the US as the US number will only ever be used for routing incoming calls and will not actually be used by a bona-fide person.  You can set up emergency locations in the Skype for Business admin centre (under the voice option).

Finish by Setting Up Call Forwarding.

Our demo users now have exotic phone numbers but they are not real users so will never answer the phone.  We can sign into the Skype for Business client as them and configure call forwarding so if someone rings their number, it will forward the call to one of our real users, or our switchboard.  The Skype client also tells us the call has been forwarded so we realise this is an international client.

Skype for Business call forwarding

 

No unused Office 365 licences?

We have assigned our numbers to demo users.  If you don’t have spare Office 365 licences then you can acquire Service Numbers instead of User Numbers.  Service numbers are intended to be assigned to services such as Audio Conferencing in Office 365, auto attendants or call queues.  Service phone numbers have a higher concurrent call capacity than user numbers but you are allowed fewer service numbers than user numbers.

If you acquire a service number, then you can create an Auto Attendant to forward calls to your switchboard.  You do this through the Call Routing option of the Skype for Business admin centre.

Skype for Business auto attendant

 

Give it a go and create your “London, Paris, New York” office locations.  Feel free to contact us if you have any questions.


Create an Azure Virtual Machine



An Azure Virtual Machine is a simulated computer (also known as a guest) hosted within a physical computer (also known as the host).  Virtual machines have been around for decades but the technical capabilities have advanced greatly over recent years and they are now a significant commodity in hosted infrastructures.  A virtual machine behaves like an actual physical computer but it shares the physical pool of resources, the memory, buses, processing power and storage, with other virtualised infrastructure.  The end user can connect to their virtual machine and it will have the same look and feel as if it was a physical computer.  The host computer runs a very specialised, reduced operating system (called the hypervisor) which takes care of the security, sharing and scheduling of all the guest operating systems on top of it.

The Azure Virtual Machine allows IT architects to create a network that will build success for the business. It means that the organization can easily set up temporary and therefore cost-effective environments for development and testing or they can transfer business-critical applications from on-premises servers to more advanced, reliable and economic hardware.  It allows organizations to try new ventures in a safe way; trying out new operating systems such as Linux or open-source application software.  It allows businesses to stretch and flex in a ‘fail fast’ way; if the business project or need is no longer relevant, then it can be switched off or even deleted without leaving redundant hardware.

Azure Virtual Machines are created through the Azure portal, which can be found at https://portal.azure.com or through programming interfaces such as PowerShell.  The simplest way to create an Azure Virtual Machine is using the portal; a browser-based user interface for interacting with Azure. It’s a straightforward process to create and configure Azure Virtual Machines and there’s even a Quick Start so that your Virtual Machine is up and running within minutes.

The difference between an Azure Virtual Machine and an on-premises Virtual Machine is that, in Azure, the IT architect does not control the host machine or its operating system.  All of the configuration is done through the cloud operating system, whether through the browser or the portal. In this example, we will create a new SQL Server Virtual Machine in Azure, using an image from the Azure gallery.

  1. Log in to the Azure portal at https://portal.azure.com using your Azure subscription account.
  2. On the Azure portal, click New.
  3. The portal opens the New window.  Select the Compute option and then select the option See all.
  4. In the search field, type SQL Server 2017, and press ENTER.
  5. To see the relevant options, click the Filter icon, and select the image for Windows SQL Server, which will be published by Microsoft.
  6. Select the image named SQL Server 2017 Developer on Windows Server 2016.
  7. Under Select a deployment model, ensure that Resource Manager is selected.
  8. Click Create.
  9. There will be a number of options for configuring the Virtual Machine, such as its size, location, and security information. Once you have selected the relevant options, select Deploy. The Virtual Machine will take a few moments to deploy.

Once the deployment has completed, you can connect to the VM remotely using Remote Desktop Connection on your PC or in the case of our SQL Server installation, through the SQL enterprise tools.


Azure Virtual Machine Types



When creating an Azure Virtual Machine, you will be presented with a wide choice of codes from A0 to M128s.  These represent the intended use and configuration of your virtual machine; basically, how many cores, RAM and storage it includes but there are other intricacies to this as well. Your choice depends on the workloads you want to run on the virtual machine. The most important thing is that you understand what the virtual machine will be used for. Once this decision is made, the IT architect can select the series and the size of virtual machine.

How does the process of Virtual Machine selection differ from sizing on premise Virtual Machines?  The machine will need as much RAM, CPU and disk as your operating system and applications will consume and in this respect, the selection of Azure Virtual Machine is identical to the process of selecting the sizes and configuration of on-premises physical or virtual machines currently.

One key aspect of Virtual Machine selection that is different, however, is that the Azure cloud environment allows the IT architect to scale. With some restrictions, you can scale your virtual machine up to a more powerful instance or down to a less powerful and cheaper virtual machine.  Azure Virtual Machines also offer high availability (HA) via scale-out.  For the on-premises architecture, this would require densely packed hardware and the IT team would have to take care of the Virtual Machine hosts, networks and storage whilst also thinking about redundancy and ensuring that the virtual machines were running at all times. Azure is different because the cloud takes care of that work for the IT team and offers high availability as part of that process.

Azure allows organizations to be cost-effective by setting up a group of smaller machines which share workloads and can be turned on or off according to demand or on a timed schedule.  Effectively, Azure charges for the compute power you are using when the virtual machines are turned on and doesn’t charge for virtual machines that are turned off.  The organization is only paying for any persistent storage or networking of the virtual machines when they are powered off, but not for unused compute power.

 

Selecting a Virtual Machine Size

To select the correct Virtual Machine series, the IT architect will need to know the intended workload. Each virtual machine type is optimised to run a different workload, so it’s essential that this planning is done first. For example, if you are looking for a virtual machine that can work with Big Data solutions, then the organization should select a virtual machine from the High Performance Compute VM series. At the time of writing, Microsoft offers six virtual machine types:

General Purpose – Balanced CPU-to-memory ratio
Compute Optimised – High CPU-to-memory ratio
Memory Optimised – High memory-to-CPU ratio
Storage Optimised – High disk throughput and IO
GPU – Specialised virtual machines for heavy graphics rendering and video editing
High Performance Compute – Fastest, most powerful CPU with optional high-throughput network interfaces (RDMA)
Once the series has been selected, the IT architect can choose the virtual machine size.

 

Selecting a Virtual Machine Size

One key piece of advice to note is that if the organization believes that they may need to move up to another larger virtual machine in the future, then it is best to check that the larger machine is available in the same hosting region (e.g. UK South, West US) as the original virtual machine. Otherwise, the organization will have to move the virtual machine to the new region.  Although it’s not an onerous task to move a virtual machine from one region to another, it is best to avoid if possible.

The following table will help the IT architect to identify the correct size of virtual machine for the requirements.

 

Table of Azure virtual machine types

 

To summarise, choosing an Azure Virtual Machine is a crucial part of the transition to cloud.  There is a good choice available and you have the ability, with some restrictions, to switch in the future as your needs change.


The Azure Pricing Calculator



The Azure Pricing Calculator, located at https://azure.microsoft.com/en-gb/pricing/calculator helps you to predict the estimated monthly Azure bill for any Azure workload.  Once you have Azure services running, the Azure Portal helps you to monitor actual costs that you have incurred.

 

Screenshot of the Microsoft Azure Pricing Calculator
Figure 1 Azure Pricing Calculator website

 

The Azure Pricing Calculator helps you understand the costs of moving your technical estate to Azure, and to estimate pricing once your data and applications are in Azure.  The calculator allows you to view the price for different sizes and configurations of your Azure Virtual Machines in terms of the machine’s CPU, memory, storage, location and hours in use.  You can add any combination of Azure services to the calculator and view the pricing for complete solution.  This allows you to make better decisions on your move to the cloud by expediting the cost component of the decision.

The calculator is also useful in determining if you have all of the crucial resources in place for a successful migration to the cloud as relevant Azure services will be suggested when you add a component.  For example, if you add a virtual machine, you will typically require storage so the calculator helpfully adds that component into the pricing.

Since the Azure Pricing Calculator allows you the mix your configurations before you make your purchase, the cloud migration process becomes clearer.  This facility is particularly critical when the technical estate of the cloud infrastructure is in a constant state of change.  Microsoft Azure has monthly releases of new updates and new features.  This flexibility means there are a lot of different choices that can be made and the calculator not only helps you plan for your costs but can even reduce them altogether by helping to overcome the challenge of comparing your existing costs with the impact on cost of moving to Azure.

Azure has a great deal of choice but, in some ways, too much choice can be a difficult problem to have!  The Azure Pricing Calculator helps navigate the complexities of the Azure migration and choose the optimal configuration and pricing for your environment.  By proactively playing with the Azure Pricing Calculator, you can simulate various scenarios amongst the various Azure instances, types and features that are available.

Often, it can be perceived that organisations need to move all of their estate to the cloud but in reality, this is not always the case.  When onboarding your technical and data infrastructure to the cloud, it can be a good idea to start small in order to set yourself up for success.  The Azure Pricing calculator can help you to price up different scenarios to help you to navigate hybrid architectures as well as full cloud architectures.


Introduction to the Azure Portal



Microsoft Azure is a cloud computing platform and infrastructure created by Microsoft and the Azure Portal is one way for administrators to work with the cloud-based services and resources that are held in Azure.  It’s extremely straightforward and as it’s browser based, doesn’t require any new client software to be installed.

The portal can be found at portal.azure.com and it is sometimes known as the Azure Resource Manager or ARM for short.  The Azure Portal allows users to conduct a range of activities in Azure including creating and browsing resources, configuring settings for services such as Virtual Machines and monitoring the resources while they are in operation.

Due to the range of activities available on the portal, a detailed description is beyond the scope of a brief article but the main activities of the portal are very easy to use.  To log in to the Microsoft Azure portal, open a browser and navigate to https://portal.azure.com.  Log in with your Azure subscription account or if you don’t have one yet, you can set one up using the link on the portal page.

Once you are logged in, you can see the Azure dashboard.  There is a good search facility, which means that developers and IT architects can find what they need quickly.  You can also see your account information at the top right-hand corner.  The portal itself is free to access and does not incur any cost to use.

It’s possible to bring your existing knowledge to bear on Azure.  For example, the portal has its own Bash functionality and you can deploy JSON templates and your existing web apps via the portal. Azure offers a wide range of varied services on the portal but everything is located in one place.  This unified approach means that people can find what they want quickly, rather than having to use different interfaces or applications for different things.

Like most administrative tasks, once your Azure deployments are established, well-known and documented, it’s more likely the Azure API or PowerShell interface will be used to provide ongoing automated operations and functions.  For example, a PowerShell script to spin up a new instance of a pre-configured virtual machine with SQL Server for the marketing team who want to store some results of a campaign.  This is straightforward to include as part of your operations workflow rather than expect an IT administrator to log into the portal and create the virtual machine.

From the Finance perspective, you can access billing information through the portal so that it’s possible to keep an eye on costs for each service.  User rights can be set to allow IT administrators access to the Azure services but not the subscription or billing information and vice versa for finance users.  The Azure portal uses Power BI to provide context and clarity to the billing information as well as other types of data such as service and maintenance information.  From the users’ point of view, this means it is easy to port experience from the Azure portal onto Power BI, which is another interesting and useful data visualisation and reporting technology from Microsoft.

To summarize, the Azure portal is a unified window into Microsoft Azure.  It’s an easy, one-stop-shop to everything Azure.


How Does Premium Assurance Differ From CSA?



How Does Premium Assurance Differ from Custom Support Agreements?

We detailed the new Premium Assurance in a previous blog post.  At a high level it looks similar to an existing Microsoft service called Custom Support Agreements.

They are very different beasts though.  Custom Support Agreements are where organisations cannot move off an older software version and take out a support contract with Microsoft.  They are typically expensive, not off-the-shelf and thus taken by larger organisations with complex needs.  They cover different products, are sold and supported by different Microsoft teams, have different objectives, business rules and pricing.

Premium Assurance is a standard add-on to Software Assurance and is listed in the price list.  It’s easy for customers to purchase, for partners to sell and for everyone to understand.

Will Premium Assurance spell the end of Custom Support Agreements?  Microsoft hasn’t elaborated at this stage but so far it looks like all existing CSA products in the market today will continue unchanged.

Premium Assurance

  • Software Assurance Add-on (requires SA)
  • Only for Windows Server and SQL Server starting with 2008 versions
  • All eligible servers must be included
  • Up to 6 extra years of support
  • Includes ‘critical’ and ‘important’ security updates
  • Available through certain volume licensing programs
  • Published prices
  • Sold via Worldwide Licensing with commissions paid to sellers
  • Discounts and price-protection for signing up early

Custom Support Agreements

  • Premier Support Add-on (requires Premier)
  • Software Assurance not required
  • Covers multiple products including Windows and Office but does not cover Windows Server or SQL Server
  • Typically last 1-3 years, not 6
  • Customer can cover just a subset of affected licences and pricing is tiered according to numbers
  • Only includes ‘critical’ updates but ‘important’ can be included sometimes for a fee
  • Bought when a product goes end-of-support; no discounts for buying early
  • Sold through Microsoft Premier and Services staff
  • Faster support through Premier-level support services and Technical Account Managers

Clean Install of Windows 10 Upgrade



Microsoft Windows 10

Performing a clean install of the free Windows 10 upgrade is a 2 step process.  Firstly as an in-place upgrade to register the free upgrade and then as a clean install.  This is an inconvenience especially when upgrading multiple desktops and sometimes in-place upgrades from one version of an OS fail to complete.

In-place Upgrades can Fail

Reasons for failed upgrades range from undetected incompatible hardware drivers, erroneous applications, user tweaked settings, malware, antivirus and hard disk accelerator software through to not enough disk space, underlying bad disk sectors and proprietary disk compression or encryption software.

Although these possibilities have been around for many years, the free offer of a Windows 10 upgrade has made more people than ever want to jump up onto this new release and because of the time limitation before the free upgrade offer expires in July 2016, it has made the heightened the perception of urgency to do it now (it could just be because ‘the grass is greener’ or maybe even some think Microsoft will suddenly have a change of heart and whip this free upgrade from under them).

And while the vast majority of people will simply perform the in-place upgrade and allow Windows 10 to merge onto their existing PC setup, some, however, prefer to go down the ‘purists’ route of a clean install.  Migrate all the useful data off their existing system, wipe the drive (preferably after having run a HDD surface scan on older drives), install a fresh OS and enjoy the challenge of searching out any missing drivers for those odd hardware pieces.

In order to be eligible for a Windows 10 free upgrade you must allow the upgrade process to identify that your existing OS installation is valid in terms of version (Windows 7, 8.0, 8.1), edition (Home or Pro), and activation (genuine software, not a trial, or otherwise not properly activated).  For those interested in more detail, go to the Windows 10 FAQ.

Two-Step Upgrade Process

This leads us back to our original point; performing a clean install of Windows 10, whilst trying to qualify for the free upgrade, is a 2 step process.  Firstly the existing OS must be registered as being eligible and secondly that eligibility must be migrated over to the new clean install.

Given that quite often the reason for a clean install is that this existing OS is experiencing some of the issues I mentioned right at the very start of this article this can mean that this initial in-place upgrade never completes, preventing enrolment of the PC to enable a subsequent clean install.

However, this is a shortcut to this initial step – that of enrolling/registering/certifying (call it what you will) the PC’s existing OS that it is indeed suitable and eligible for a free Windows 10 upgrade without having to perform the entire Windows 10 in-place upgrade first.

Naturally, before proceeding, any data migration from the old PC must be completed, either in the form of a backup, file transfer or Easy Transfer Wizard.  You may even want to consider performing a full system image copy in case you do not successfully complete the fresh install phase.  Proceed only if you have a way to recover.

  1. Download a copy of Windows 10.
  2. Use your preferred method to access the files within the downloaded ISO (such as burn it to disk, mount it within Windows or use a 3rd party utility to expand it).
  3. Search for gatherosstate.exe.  Depending on the version of the image you chose, it will either reside in sources or \Windows\x64\sources or \Windows\x32\sources.  Copy gatherosstate.exe to your desktop.
  4. Ensuring you are properly connected to the internet, run the gatherosstate application.  After a few seconds, an additional file should appear on your desktop – GenuineTicket.XML.  This is confirmation that your existing PC and OS have passed the pre-requisites needed to perform a clean Windows 10 install.  Save the file GenuineTicket.XML to a location NOT on your system HDD (as this is going to be wiped).  Any location will do; USB, network share, even email it to yourself!
  5. Perform your clean install of Windows 10.  When requested for the product key, click the ‘SKIP’ button.
  6. When the clean install has completed and you’re looking at your fresh desktop, locate GenuineTicket.XML and copy it to the hidden folder C:\ProgramData\Microsoft\Windows\ClipSVC\GenuineTicket.  You can navigate to it directly by pasting this URL directly into a RUN dialog box (Win+R to activate, or Win+X,R or just type in RUN into the Cortana search box).
  7. Reboot your PC.
  8. That’s it!  In order to confirm activation, bring up the SYSTEM panel (Win+Pause, Win+x, S, or type SYSTEM into the Cortana search box).  The System dialog box will now confirm that this new installation is activated.
  9. Allow updates to be performed on your new system, via SETTINGS, Update & Security.
  10. Enjoy that new-fresh Windows 10 installation smell!