End user computing – the device doesn’t matter

Following a recent Windows update that “went bad”, I needed to have my work PC rebuilt.  That left me with a period when I had work to do, but only a smartphone to work on or my personal devices. To me, this was also a perfect opportunity to put cloud services to work.

So, armed only with a web browser on another PC, I was perfectly able to access email and send/receive IMs (it’s all in Office 365), pester people on Yammer, catch up on some technical videos, etc. There was absolutely nothing (technically) preventing me from doing my job on another device. That’s how End User Computing should work – providing a flexible computing workstyle that’s accessible regardless of the device and the location.

The real issues are not around technology, but process: questions were asked about why I wasn’t following policy and using my company-supplied device; and I was able to answer with clear reasons and details of what I was doing to ensure no customer information was being processed on a non-corporate device. There are technical approaches to ensuring that only approved devices can be used too – but what’s really needed is a change of mindset…

Short takes: pairing my headphones, firewalls and Exchange SMTP communications, tethered photos with a Mac

Some more snippets that don’t quite make a blog post…

Because I always forget how to do this: how to pair a Plantronics BackBeat PRO headset with a mobile device.

And a little tip whilst troubleshooting connectivity to an Exchange Server server for hybrid connectivity with Office 365… if telnet ipaddress 25 gives a banner response from the SMTP server then that’s a good thing – if the firewall is interrupting transmission then I’ll get nothing back, or asterisks ********. Joe Palarchio (@JoePalarchio) writes about this (see issue 7) in his post on Common Exchange Online Hybrid Mail Flow Issues. Note that firewalls doing any form of blocking between Exchange servers are unsupported but that doesn’t stop customers from putting them between their email servers and anything running in the cloud (e.g. Hybrid server in Azure).  If you need to do this, then you should have any ANY/ANY rule (i.e. allow free flow of traffic) between the Exchange Server servers.

Take photos with OS X Image CaptureFinally, back in 2009, I  wrote about tethering a DLSR to a computer and taking pictures using Windows PowerShell (I think I’ve also written about using software to do this). Well, it turns out that the OS X Image Capture utility can also take a photo on a supported camera – either on a timed basis or by pressing a key.  Could be useful to know if setting up a time-lapse, or for studio work…

Copy NTFS permissions from one folder/file to another

I’m working with a customer who is migrating from on-premises datacentres to the cloud – using a virtual datacentre in Microsoft Azure. One of the challenges we have is around the size of the volumes on a file server: Azure has a maximum disk size of 1023GB and the existing server has a LUN attached that exceeds this size.

We can use other technologies in Windows to expand volumes over multiple disks (breaking the <1TB limit) but the software we intend to use for the migration (Double Take Move) needs the source and target to match. That means that the large volume needs to be reduced in size, which means moving some of the data to a new volume (at least temporarily).

One of my colleagues moved the data (using a method that retained permissions) but the top level folders that he created were new and only had inherited permissions from their parent. After watching him getting more and more frustrated, manually configuring access control lists and comparing them in the Windows Explorer GUI, I thought there had to be a better way.

A spot of googling turned up some useful information from forums and this is what I did to copy NTFS permissions from the source to the target (thanks to Kalatzis Stefanos for his answer on Server Fault).

First of all, export the permissions from the source folder with the icacls.exe command:

icacls D:\data /save perms.txt [/t /c]

/c is continue on error; /t is to work through subfolders too

Then, apply these permissions to the target volume. They can be applied at volume level, because the export includes the file names and an associated ACL (i.e. it only applies to matching files)

icacls D:\ /restore perms.txt

But what if the source and destination folders/files have different names? That’s answered by Scott Chamberlain in another post, which tells me I can just edit my perms.txt file and change the file/folder name before each ACL.

By following this, I was able to export and re-apply permissions on several folders in a few minutes. Definitely a time saver!

Reflecting on riding the #RideStaffs 68-mile sportive

Back in 2013, when I bought my first road bike since the “racer” of my teens, the first sportive I took part in was the Tour [of Britain] Ride in Staffordshire – setting out from Stoke-on-Trent. Now I work for a Stafford-based IT services company and when I heard we were sponsoring the Staffordshire Cycling Festival (@RideStaffs) it gave me a chance to a return visit, although a little further south this time!

(Ironically, the Tour Ride has moved to my home county of Northamptonshire this year… but I can’t make it.)

So, last Sunday, blessed with some summer sunshine (at last!) I rocked up at Shugborough Hall wearing my risual orange jersey, the only one of the team joining the 68 mile sportive (though quite a few of the guys took part in the 22 miler).

With rolling hills from the off, at Milford we took a sharp left and then Bang! we hit the climb up onto Cannock Chase. The first 30 minutes were slow, grinding my way up onto the Chase until we turned left on Brindley Heath and headed down towards Rugeley. I’d just got going at full speed (hitting just over 60kph) when I realised I needed to take a left turn half way down a hill and grabbed the brakes hard – no discs on my road bike! I managed to scrub off speed and make the turn, then hooked onto the back of a small peloton with 2 other riders down towards Rugeley. After taking turns for a while, we hit the A51 and missed the route sign – but it seemed wrong to be heading west so quickly and, as we were heading back towards Shugborough, I turned around and retraced my steps, picking up the correct route again a mile back down the road and passing my hotel from the previous night!

The next section took in mostly flat roads near Lichfield and Alrewas, nipping over the border into Derbyshire before turning over the River Trent and up to the first stop at Barton-under-Needwood. After taking on water and flapjack I started chatting with the owners of two beautifully restored 1970s Colnagos with glorious etching and chromework, one of whom even had a traditional wool jersey, cap (no helmets in the ’70s I guess) and leather saddle bag!

Despite my slow start, I’d averaged over 27kph but realised why as we set off again towards Uttoxeter – turning into the wind that had previously been helping me along (though Hanbury Bank offered a welcome break) . To make matters worse my bike seemed to be grinding from the bottom bracket… time to see Kev at Olney Bikes again for repairs…

After another stop in Uttoxeter (where one rider was conducting the town band – he later told me they split over “musical differences”!) we set off again over some undulating terrain towards the last major climb at Sandon (and what a killer that was).

I skipped the final stop (it was only for water and was carrying plenty of fluids) and pushed on with a large group riding into Stafford – past the Technology Park where our offices are – but was dropped again as we turned left up past the University. From there it was a steady ride on into Shugborough… ending slightly-extended 68 mile ride!

As I crossed the line, I was handed my goody bag musette style, including a variety of items but most importantly a beer token!  My official time was a respectable 5 hours 8 minutes, but Strava told me I’d only been moving for 4 hours and 39, climbing 1235 metres in the process.

Even though I’d missed the rest of the risual riders (the 22 mile sportive set off later and obviously got back sooner!) I stuck around for a while to watch some of the Tour de France coverage and got some lunch from the wood fired pizza stand (a long wait but nice pizza), before heading home… wishing I hadn’t picked a sportive quite so far away!

All in all, it was a fantastic day – and I was very lucky with the weather. Paul at Leadout Cycling organised a great event and I hope to make it back another year. It was also a timely reminder that, even without heading up onto the North Staffordshire Moorlands, there are still plenty of hills around Staffordshire and that my normal routes around South Northants, North Bucks and Beds are relatively flat by comparison…

…as well as that it’s just 4 more weeks until my next sportive – 100 miles from London to Surrey and back again (hopefully not cut short this year)!

Thoughts on the use of Sway as a presentation tool

A couple of weeks ago, I gave a short talk on adopting cloud services at Milton Keynes Geek Night (MKGN). I’ll admit being a little nervous – the talk was supposed to be 5 minutes (and I had more to say than would ever have fitted – I later learned it’s pretty rare for anyone to stick to their allotted time) and I’m not used to speaking to an audience larger than a meeting room-full (a typical MKGN audience in the current venue is around about 100).  Just to make things a little harder for myself, I decided to use Microsoft Sway for my visual aids.

For those who are unfamiliar with Sway, I got excited about it when it first previewed in 2014. Since then it’s shipped and is available as part of Office 365 or as a standalone product. It’s a tool for presenting content from a variety of sources in a visually-appealing style that works cross-platform and cross-form factor.

Even though Sway has an app for Windows 10, some of the content (e.g. embedded tweets) relies on having an Internet connection at the time of presenting.  Wi-Fi at conferences is notoriously bad and 3G/4G at the MKGN venue is not much better (although it did hold up for me on the night). So, with that and the 7Ps in mind I had PowerPoint and PDF fallback plans but I persisted with Sway.

I’m still not sure Sway is a presentation tool though…

You see, as I swiped and clicked my way through, the audience saw everything I saw. I prefer the simplicity of a picture, with my notes on my screen – I talk, the audience listens, the image re-enforces the view. Sway didn’t work for me like that. Indeed, Sway falls into what Matt Ballantine recently described as the latest whizz-bang tool in a post about a request he was given to knock up a few slides of PowerPoint:

“PowerPoint [… is …] rarely used to perform the task it was designed to do […] The latest whizz-bang tool is the answer! Prezi, Sway or whatever it is that the cool kids are using. Actually, though, the answer probably lies as much in new skills that people need to develop to communicate in a Digital era. Questions like:

  • Who is your audience?
  • What is the message that you are trying to deliver?
  • Where will they be?
  • How will they consume your content?
  • How can you extend the conversation?”

We use Sway at work for weekly updates on what’s been happening in the company – internal communications that used to make use of lengthy HTML emails (I almost never used to read to the end) became more immersive and easier to engage with. And that’s where I think Sway fits – as a tool for communications that are read asynchronously. Not as a tool for presenting a message to an audience in real time.

You can see what you think about the use of Sway as a presentation tool when you take a look at the Sway I used for my MKGN talk.

Adventures on a Brompton bike: my first London commute

Those who know me well know that I have a collection of bikes in my garage. Fans of the Velominati will be familiar with rule #12, which states:

“Rule #12: The correct number of bikes to own is n+1.

While the minimum number of bikes one should own is three, the correct number is n+1, where n is the number of bikes currently owned. This equation may also be re-written as s-1, where s is the number of bikes owned that would result in separation from your partner.”

So, it was with great delight that I recently persuaded my wife it would be a great idea for me to buy a new bike. Maybe not the super-light road bike that I might like (I need a super-light Mark before that makes sense anyway) but a commuter. A folding bike to take on the train. A Brompton.

My employer doesn’t take part in a Cycle to Work scheme and Bromptons are pretty pricey (so saving the tax would make a big difference) but I did my research and snapped up a second-hand example with “only 100 miles on the clock” on eBay (checking first to see if it was reported as stolen, of course!). So, on Monday, I was very excited to return home from work to find that my “new” bike (bike number four) had arrived.

For those familiar with Brompton specs, It’s an M3L. I’d like an S6L or S6R but this will do very nicely instead. (If you don’t know what that means, there’s a useful configurator on the Brompton website.)

Yesterday was my first trip to London with the Brommie, so how did it go?

Look out!

Well, my hi-vis purchases from Wiggle haven’t arrived yet and it’s a good idea to be brightly coloured. Nipping up the inside of large vehicles is a very bad idea that’s likely to get you killed but, if you’re confident in traffic, the Brompton is responsive and handles remarkably well.

The biggest problem I had was whilst riding off the end of a bus lane, when a motorist decided that was his (perfectly legal) cue to change lanes in front of me but clearly hadn’t seen me coming. My bell is pretty pathetic for warning car drivers (even with open windows) but my shout of “look out!” worked better. As did my brakes, hastily applied as I brought the Brompton to a skid stop a few inches from the door of the car (don’t tell Mrs W…). No harm done so off we rode/drove. I might invest in an air horn though…

London roads

In common with the rest of the UK, London’s roads are poorly surfaced in places and pretty congested at times. But there are plenty of cycle lanes in central London – including the ability to ride through roads that are closed to motorised traffic (sometimes contra-flow). My normal walking route from Euston to Whitehall through Bloomsbury and Seven Dials worked really well but the reverse was less straightforward. I’ve also ordered some free cycle route maps from Transport for London, so I’ll see if they inspire some nifty short-cuts.

I know some people are critical of the system with painted bike lanes being far less satisfactory than dedicated infrastructure but this is Britain and there’s not a lot of space to share between different types of road user! Even so, with bikes becoming more and more common, I’m sure that motorists are more used to cyclists sharing the road (I have some experience on “Boris Bikes” in London too, prior to buying my Brompton bike).

Folding, carrying, etc.

Watch any experienced Brompton bike user and they fold/unfold their bike in seconds. I currently take a bit more time… though by the end of the day I was starting to get the hang of it! There’s advice on the website (as well as in the manual).  I have to admit it’s a bit heavy to lug around (up stairs, etc.) and I felt like I was Ian Fletcher in an episode of W1A as I walked into the lift but that’s OK. And joking about my cycling attire (I was only wearing a helmet but that didn’t stop the lycra jokes) amused my colleagues and customer!


Clothing could be an issue. I was wearing a suit, with a rucksack on my back to hold my laptop etc. and my coat. That turned out to be a bad idea. I was dripping wet when I got to work… so I’ll need a different luggage solution and maybe a change of clothes (or I may need to see if I can get away without the suit, or at least the jacket…)


Next up, the suspension. My Brompton arrived with the standard suspension block but Brompton recommend the firm version for those over 80kg or “who cycle more aggressively and are prepared to sacrifice some comfort”! So, at lunchtime I headed over to Brompton Junction to get a replacement suspension block of the firm variety (the store bike mechanic told me that even lighter people need it as the standard is just too soft). I also picked up a pump as it was missing from my bike (some retailers fit one as standard but maybe not all do) and took a look at some luggage. Expensive but nice. After mulling it over all day, I’ve ordered a waxed cotton shoulder bag which should be in my local branch of Evans Cycles (together with the front carrier block) for collection tomorrow…

So was it worth it?

I live 12 miles from the local railway station, which would be a bit far on a Brompton (it takes 45 mins on a road bike) so I’ll still be driving that part of my journey. Once off the train though, using the bike instead of walking cut my London travel down from about 45 minutes each way to around 15. So saving 30 minutes, twice a day (on the days when I’m in town) gives me back an hour in my day (if I avoid the temptation to use it for work…) – together with more exercise. And I can use the bike and take the train to the office in Stafford now instead of a 200-mile round trip (catching up with some work, reading, or even some sleep on the train). Sounds like a result to me.

Have I been pwned?

You’re probably aware that LinkedIn suffered a major security breach, in which something like 164,611,595 sets of user credentials were stolen. Surprisingly, you won’t find anything about this in LinkedIn’s press releases.

In less enlightened times (and before I started using LastPass), I may have re-used passwords. That’s why breaches like the one at LinkedIn are potentially bad. Re-using that identity means someone can potentially log in as me somewhere else – I could be pwned.

Microsoft Regional Director and MVP, Troy Hunt (@troyhunt) has set up an extremely useful site called HaveIBeenPwned. Entering your email address (yes, that means trusting the site) checks it against a number of known lists and yes, it seems mine was compromised in three hacks (at LinkedIn, Adobe and Gawker). In all of those cases, I’ve since changed my passwords and for popular sites – where they offer the option – I’ve started to use second factor authentication solutions (Azure MFA has been on my Office 365 subscription for a long time, I use Google two-step verification too and, since tonight, I’ve added LinkedIn’s two-step verification and Facebook Login Approvals).

So, I guess the two points of this post are:

  1. For heavens sake stop re-using passwords on multiple sites – you can’t rely on the security of others.
  2. Turn on 2FA where it’s available.

Hopefully one day soon, passwords will be consigned to the dustbin of technology past…

Scripting Azure VM build tasks: static IP addresses, BGInfo and anti-malware extensions

Following on from yesterday’s blog post with a pile of PowerShell to build a multiple-NIC VM in Azure, here are some more snippets of PowerShell to carry out a few build-related activities.

Setting a static IP address on a NIC

$RGName = Read-Host "Resource Group"
$VNICName = Read-Host "vNIC Name"
$VNIC=Get-AzureRmNetworkInterface -Name $VNICName -ResourceGroupName $RGName
$VNIC.IpConfigurations[0].PrivateIpAllocationMethod = "Static"
Set-AzureRmNetworkInterface -NetworkInterface $VNIC

Installing BGInfo

$RGName = Read-Host "Resource Group"
$VMName = Read-Host "Virtual Machine Name"
$Location = Read-Host "Region/Location"
Set-AzureRmVMExtension -ExtensionName BGInfo -Publisher Microsoft.Compute -Version 2.1 -ExtensionType BGInfo -Location $Location -ResourceGroupName $RGName -VMName $VMName

Installing Microsoft Antimalware

This one is a little more difficult – the script is a development of Mitesh Chauhan’s work entitled Installing Microsoft Anti Virus Extension to Azure Resource Manager VM using Set-AzureRmVMExtension

It’s worth reading Mitesh’s post for more background on the Microsoft Anti Virus Extension (IaaS Antimalware) and also taking a look at the Security Health in the Azure Portal (currently in preview), which will highlight VMs that have no protection (amongst other things).

Mitesh’s script uses a simple settings string, or for more complex configuration, it reads from a file. I tried to use a more complex setting and it just resulted in PowerShell errors, suggesting this wasn’t proper JSON (it isn’t):

$AntiMalwareSettings = @{
"AntimalwareEnabled" = $true;
"RealtimeProtectionEnabled" = $true;
"ScheduledScanSettings" = @{
"isEnabled" = $true;
"day" = 1;
"time" = 180;
"scanType" = "Full"
"Exclusions" = @{
"Extensions" = ".mdf;.ldf;.ndf;.bak;.trn;";
"Paths" = "D:\\Logs;E:\\Databases;C:\\Program Files\\Microsoft SQL Server\\MSSQL\\FTDATA";
"Processes" = "SQLServr.exe;ReportingServicesService.exe;MSMDSrv.exe"

Set-AzureRmVMExtension : Error reading JObject from JsonReader. Current JsonReader item is not an object: Null. Path”, line 1, position 4.

If I use the JSON form it’s no better:

$AntiMalwareSettings = {
"AntimalwareEnabled": true,
"RealtimeProtectionEnabled": true,
"ScheduledScanSettings": {
"isEnabled": true,
"day": 1,
"time": 180,
"scanType": "Full"
"Exclusions": {
"Extensions": ".mdf;.ldf;.ndf;.bak;.trn",
"Paths": "D:\\Logs;E:\\Databases;C:\\Program Files\\Microsoft SQL Server\\MSSQL\\FTDATA",
"Processes": "SQLServr.exe;ReportingServicesService.exe;MSMDSrv.exe"

Set-AzureRmVMExtension : Unexpected character encountered while parsing value: S. Path ”, line 0, position 0.

So the actual script I used is below:

# Install Microsoft AntiMalware client on an ARM based Azure VM
# Check note at the end to be able to open up the SCEP antimalware console on the server if there are problems.
# Author – Mitesh Chauhan – miteshc.wordpress.com (updated by Mark Wilson - markwilson.co.uk)
# For Powershell 1.0.1 and above
# See https://miteshc.wordpress.com/2016/02/18/msav-extension-on-azurearm-vm/

# Log in with credentials for subscription
# Login-AzureRmAccount

# Select your subscription if required (or default will be used)
# Select-AzureRmSubscription -SubscriptionId "Your Sub ID here"

$RGName = Read-Host "Resource Group"
$VMName = Read-Host "Virtual Machine Name"
$Location = Read-Host "Region/Location"

# Use this (-SettingString) for simple setup
# $AntiMalwareSettings = ‘{ "AntimalwareEnabled": true,"RealtimeProtectionEnabled": true}’;

# Use this (-SettingString) to configure from JSON file
$AntiMalwareSettings = Get-Content ‘.\MSAVConfig.json’ -Raw

$allVersions= (Get-AzureRmVMExtensionImage -Location $location -PublisherName "Microsoft.Azure.Security" -Type "IaaSAntimalware").Version
$typeHandlerVer = $allVersions[($allVersions.count)–1]
$typeHandlerVerMjandMn = $typeHandlerVer.split(".")
$typeHandlerVerMjandMn = $typeHandlerVerMjandMn[0] + "." + $typeHandlerVerMjandMn[1]

Write-Host "Installing Microsoft AntiMalware version" $typeHandlerVerMjandMn "to" $vmName "in" $RGName "("$location ")"
Write-Host "Configuration:"

# Specify for -SettingString parameter here which option you want, simple $settingsstring or $MSAVConfigfile to sue json file.
Set-AzureRmVMExtension -ResourceGroupName $RGName -VMName $vmName -Name "IaaSAntimalware" -Publisher "Microsoft.Azure.Security" -ExtensionType "IaaSAntimalware" -TypeHandlerVersion $typeHandlerVerMjandMn -SettingString $AntiMalwareSettings -Location $location

# To remove the AntiMalware extension
# Remove-AzureRmVMExtension -ResourceGroupName $resourceGroupName -VMName $vmName -Name "IaaSAntimalware"

# If you have error saying Admin has restricted this app, Navigate to “C:\Program Files\Microsoft Security Client”
# Run "C:\Program Files\Microsoft Security Client\ConfigSecurityPolicy.exe cleanuppolicy.xml"
# Or simply drag the cleanuppolicy.xml file above onto the ConfigSecurityPolicy.exe to sort it and you should be in.

The MSAVconfig.json file contains the JSON version of the Anti-Malware settings:

"AntimalwareEnabled": true,
"RealtimeProtectionEnabled": true,
"ScheduledScanSettings": {
"isEnabled": true,
"day": 1,
"time": 180,
"scanType": "Full"
"Exclusions": {
"Extensions": ".mdf;.ldf;.ndf;.bak;.trn",
"Paths": "D:\\Logs;E:\\Databases;C:\\Program Files\\Microsoft SQL Server\\MSSQL\\FTDATA",
"Processes": "SQLServr.exe;ReportingServicesService.exe;MSMDSrv.exe"

Building a multiple NIC VM in Azure

I recently found myself in the situation where I wanted to build a virtual machine in Microsoft Azure (Resource Manager) with multiple network interface cards (vNICs). This isn’t available from the portal, but it is possible from the command line.

My colleague Leo D’Arcy pointed me to Samir Farhat’s blog post on how to create a multiple NIC Azure virtual machine (ARM). Samir has posted his script on the TechNet Gallery but I made a few tweaks in my version:

$VMName = Read-Host "Virtual Machine Name"
$RGName = Read-Host "Resource Group where to deploy the VM"
$Region = Read-Host "Region/Location"
$SAName = Read-Host "Storage Account Name"
$VMSize = Read-Host "Virtual Machine Size"
$AvailabilitySet = Read-Host "Availability Set ID (use Get-AzureRMAvailabilitySet to find this)"
$VNETName = Read-Host "Virtual Network Name"
$Subnet01Name = Read-Host "Subnet 01 Name"
$Subnet02Name = Read-Host "Subnet 02 Name"
$cred=Get-Credential -Message "Name and password for the local Administrator account"
# Getting the Network
$VNET = Get-AzureRMvirtualNetwork | where {$_.Name -eq $VNETName}
$SUBNET01 = Get-AzureRmVirtualNetworkSubnetConfig -Name $Subnet01Name -VirtualNetwork $VNET
$SUBNET02 = Get-AzureRmVirtualNetworkSubnetConfig -Name $Subnet02Name -VirtualNetwork $VNET
# Create the NICs
$NIC01Name = $VMName+'-NIC-01'
$NIC02Name = $VMName+'-NIC-02'
Write-Host "Creating" $NIC01Name
$VNIC01 = New-AzureRmNetworkInterface -Name $NIC01Name -ResourceGroupName $RGName -Location $Region -SubnetId $SUBNET01.Id
<code>Write-Host "Creating" $NIC02Name

$VNIC02 = New-AzureRmNetworkInterface -Name $NIC02Name -ResourceGroupName $RGName -Location $Region -SubnetId $SUBNET02.Id
# Create the VM config
Write-Host "Creating the VM Configuration"
$VM = New-AzureRmVMConfig -VMName $VMName -VMSize $VMSize -AvailabilitySetId $AvailabilitySet
Write-Host " - Setting the operating system"
$VM = Set-AzureRmVMOperatingSystem -VM $vm -Windows -ComputerName $vmName -Credential $cred -ProvisionVMAgent -EnableAutoUpdate
Write-Host " - Setting the source image"
$VM = Set-AzureRmVMSourceImage -VM $vm -PublisherName $pubName -Offer $offerName -Skus $skuName -Version "latest"
#Adding the VNICs to the config, you should always choose a Primary NIC
Write-Host " - Adding vNIC 1"
$VM = Add-AzureRmVMNetworkInterface -VM $VM -Id $VNIC01.Id -Primary
Write-Host " - Adding vNIC 2"
$VM = Add-AzureRmVMNetworkInterface -VM $VM -Id $VNIC02.Id
# Specify the OS disk name and create the VM
Write-Host " - Getting the storage account details"
$SA = Get-AzureRmStorageAccount | where { $_.StorageAccountName -eq $SAName}
$OSDiskUri = $SA.PrimaryEndpoints.Blob.ToString() + "vhds/" + $vmName+"-OSDisk.vhd"
Write-Host " - Setting up the OS disk"
$VM = Set-AzureRmVMOSDisk -VM $VM -Name $DiskName -VhdUri $osDiskUri -CreateOption fromImage
Write-Host "Creating the virtual machine"
New-AzureRmVM -ResourceGroupName $RGName -Location $Region -VM $VM

Upgraded Azure support for Enterprise Agreement customers

I recently found myself in a situation where I tried to log a support request on my customer’s Microsoft Azure subscription, only to find that they didn’t have any eligible support agreements in place.

You'll need to buy a support plan before you can submit a technical support request

That seemed strange, as from 1 May 2016, Microsoft is offering a 12-month support upgrade to all customers that have or intend to buy Microsoft Azure services on an Enterprise Agreement (EA), except those customers with a Premier support contract.

Digging a little deeper, I found that:

“Microsoft will begin upgrade for existing Azure customers on Enterprise Agreement on May 1, 2016, and plans to complete the upgrades by September 30, 2016. New customers will be upgraded within 30 days of account activation. Customers will be notified by email upon being upgraded. For more information, please talk with your account manager or contact EA Azure Support through the Enterprise Portal”

But, the Enterprise Agreement Support Offer page that contains this information is subtitled: “to activate, contact your Microsoft account team”, so I contacted my customer’s account team.  Initially, they said that the customer needed to contact their Microsoft Licensing Solution Provider (LSP), who were equally confused, but I pushed a little harder and the account team investigated further, before arranging the necessary support.

So, if you’re an EA customer and you can’t wait until September to get an upgrade to your Azure support agreements, it may just be worth a chat with your Microsoft account team.