Everything, Everything

2024: January February March
2023: J F M A M J J A S O N D
2022: J F M A M J J A S O N D
2021: J F M A M J J A S O N D
2020: J F M A M J J A S O N D
2019: J F M A M J J A S O N D
2018: J F M A M J J A S O N D
2017: J F M A M J J A S O N D
2016: J F M A M J J A S O N D
2015: J F M A M J J A S O N D
2014: J F M A M J J A S O N D
2013: J F M A M J J A S O N D
2012: J F M A M J J A S O N D
2011: J F M A M J J A S O N D
2010: J F M A M J J A S O N D
2009: J F M A M J J A S O N D
2008: J F M A M J J A S O N D
2007: J F M A M J J A S O N D
2006: J F M A M J J A S O N D
2005: J F M A M J J A S O N D
2004: J F M A M J J A S O N D
March 2019
Overwatch Is Coming Home
Friday 15th March, 2019 20:11
A little while ago I suggested (to some friends that I play Overwatch with) that Overwatch could have teams based in their countries (or states) and implement a "homegrown" rule as seen in football (or soccer, if you're American).

It seems that the first part of that prediction may be happening soon. It'd be great to watch London Spitfire playing in London again, after meeting them at the Gilded Gala.

Teams can have up to 12 members, but only six can play at a time. My suggestion would be that teams should be required to have a minimum of six homegrown players. This means someone that's a national of that team (e.g. London Spitfire would allow anyone from the UK), or has been playing for that team for a number of years. If you don't have six homegrown players you lose a number of spots. So you could have twelve homegrown players, or six and six (so you can have the best players from other countries/teams playing alongside the locals), or six non-homegrown players (no substitutions).
Android Q Beta
Thursday 14th March, 2019 10:50
I didn't start using Android until Ice Cream Sandwich. Since then I've been quick to jump on the previews and betas, even when they involved flashing and fixing after an OTA update while rooted. I've long since abandoned rooting my main phone and with the beta being available OTA on certain devices, I've had a relatively painless experience using it on my main phone (typically it's been Bluetooth issues). This time around I decided to try the Android Q Beta on my old Pixel XL (the battery is f**ked, but it still works). After almost a gigabyte download and a reboot, I struggled to see any difference.

Initially I only spotted the rounder corners when switching application. I then noticed the top right bit of the notifications bar is slightly tweaked. There's a few small tweaks to the lock screen too.

That's basically it though. Very marginal changes. It also has better support for split screen, which I basically never used or needed, and had forgotten how to make it happen.

Sure, there are other improvements, and I'm looking forward to the improved privacy options (e.g. only allow access to location when the app is running) and improved access to system settings from within apps. But there's nothing radical in this beta for a standard phone. There's also warnings that the performance may be "janky".

I'm going to skip Android Q Beta on my main phone for now. And unless later betas show any real improvement, I may wait until it's ready for mainstream use. For now I'll enjoy Pie and a decent battery life.

PS I'm pleasantly surprised the original Pixel devices are supported by the beta. Maybe they'll get Android Q and security updates for longer than the usual 3 years?
Unattached Disks in Azure
Wednesday 13th March, 2019 16:39
I recently tried to delete all traces of a classic VM within Azure that I no longer require. Two out of three classic things were successful, but the storage account (and later on the resource group to which it belongs) couldn't be deleted because the storage account had some "active image(s) and/or disk(s)". The error code was the generic message "StorageAccountOperationFailed". Trying to find this unattached disk within the Azure portal seemed to be impossible. Thankfully after going into the storage account and selecting delete it then presented a checkbox to say it's okay to delete unattached disks (which it lists) when I delete the storage account. It appears that if I hadn't done this, I would continue to be charged for the unattached disk. This makes sense, but at the same time it shouldn't be so hard to find unattached disks!

What would be lovely is if the portal could show you all unattached disks. It can't. But a bunch of people have written various PowerShell scripts that can report or delete these for you.

But before I could do that, I needed to install Az. I previously had Azure installed (to set a reverse DNS entry on a host, because you can't do that through the portal either), and they can sort of co-exist. At some point I may run "Uninstall-AzureRm" to help keep things tidy. Anyway, this is how you install "Az" and check for unattached disks:

I launched an elevated Command Prompt then ran "powershell -ep bypass" so I can load scripts later on. Within PowerShell run:

Install-Module -Name Az -AllowClobber

This presents the warning:

Untrusted repository
You are installing the modules from an untrusted repository. If you trust this repository, change its
InstallationPolicy value by running the Set-PSRepository cmdlet. Are you sure you want to install the modules from
'PSGallery'?


When prompted, select "[A] Yes to All" to trust the repository. Once complete, you need to authenticate:

Connect-AzAccount

Enter your credentials when prompted.

I saved the two scripts located on the Microsoft site as attached-unmanaged.ps1 and attached-managed.ps1 respectively and then ran them. Other similar scripts exist, but I'm going to trust a Microsoft page and not a random person's blog post.

.\unattached-managed.ps1
.\unattached-unmanaged.ps1

I'm assuming that they both worked okay as I didn't get any output. I assume and hope that's because I don't have any unattached disks anymore.
Hyper-V RAM Limitations
Wednesday 13th March, 2019 11:31
I try to like Microsoft's products, but in recent years I keep stumbling upon bugs and limitations that I wouldn't have expected from them in the past.

I first stumbled upon the standby memory issue when gaming, as it caused the occasional stutter. After some searching I stumbled onto some NVIDIA forum posts that essentially blame Windows 10's memory management and it recommended using EmptyStandbyList.exe to empty the list to prevent stutters. I still have this configured to run every 5 minutes as a Scheduled Task and I've not noticed any stutters since then.

I'd previously been running some VMs on Hyper-V under Server 2012 without any trouble, even when I temporarily spun up some additional VMs. I recently migrated those VMs to a new Server 2019 installation to play around with. All was well until I tried to spin up a new Server 2016 VM and received the error "Not enough memory in the system to start the virtual machine". The odd thing was I had about 2GB free and was trying to started a 1GB VM. I knocked it down to 768MB and the VM started. Unfortunately I forgot to add a second CPU (running Server 2016 with a single CPU seems to result in terrible performance) so I shut down the VM and added an extra virtual CPU and then tried to start the VM. I got the error again. I nudged the RAM down even further to 512MB, and it launched, but apparently that's not enough RAM, especially when I was trying to install the Desktop Experience version so I could more easily install SQL Server 2016 SP1 afterwards. Server 2019 has the same limitations, which isn't a surprise as 2019 is essentially a rebadged 2016 (even the Domain Functional Level remains 2016).

I used ProcessHacker to free up some "standby" RAM so I could bump up the RAM on the VM, but I suspect EmptyStandbyList.exe would have done the trick too. I shouldn't have to use third party tools as workarounds to free up unused RAM in order to start Hyper-V VMs though. Standby memory also shouldn't be causing issues with gaming on Windows 10, but let's not digress (I just noticed that I'd moved the binary and it'd been failing to run the task for a few months now so maybe Microsoft or NVIDIA have worked around it?).

In the end I used a more expensive workaround and filled the remaining two slots in the motherboard with a brand new pair of RAM modules, doubling the amount of RAM in the 2019 host.
WinSxS And DISM
Wednesday 13th March, 2019 11:04
A long time ago in an Azure location not very far away, I built a VM in the cloud. This became a "Classic VM" that I mostly left alone as it was set to automatically install patches. I recently decided to check on my very little VM to make sure it was still running okay. After struggling to connect over RDP, I restarted the VM through the Azure Portal and when it came back up the RDP service was happy again (this has happened in the past, and is quite odd because there are IP restrictions that limited access to RDP to a handful of IPs). I tried to connect and got an error. The good news is there's a relatively easy workaround or modifying group policy to let the Remote Desktop client connect to an unpatched server:

Execute gpedit.msc and browse to Computer Configuration / Administrative Templates / System / Credentials Delegation. Then change the Encryption Oracle Remediation policy to Enabled, and Protection Level to Vulnerable.

The bad news is that means the server was missing that patch. Which means it was likely to be missing other patches. A silver lining is that I'm not aware of any security updates for DNS (or TCP/IP) so the VM never exposed any vulnerable services.

I launched Windows Update and it confirmed that patches hadn't been installed in 11 months. I tell it to install patches and watch the single CPU run flat out as the VM very slowly downloads updates. As I let them download in the background, I then notice that I've run out of disk space on the C drive.

The C drive is 126GB and Windows Server 2012 R2 with the DNS Server role really shouldn't use that much disk space. I start poking around various places such as log files and the SoftwareDistribution folder, but nothing looks unusual. Then I watch as the WinSxS folder grows in size as the underpowered VM tried to work out how much disk space the folder takes up. It's definitely the cause.

Unlike 2008 R2, 2012 or 2016, there isn't a Disk Cleanup Tool for 2012 R2 that I can use to help clean things up. I have to get my hands dirty with DISM (I've played around with it in the past, but not in over a year). Thankfully there's a good blog entry that gave me the commands to run:

dism.exe /Online /Cleanup-Image /AnalyzeComponentStore

I had planned on running this to completion, but the disk space on the VM dropped to 0 bytes so I killed this and deleted a couple of setup files in my Downloads folder to make a tiny bit of room (about 50MB). I then ran the actual command to clean things up:

dism.exe /Online /Cleanup-Image /StartComponentCleanup

I left this going overnight and in the morning discovered that I had 114GB free disk space. I then gave the VM a reboot for good measure, and reverted the Group Policy change on the jump box.

I try to like Microsoft products, but I don't really understand how the WinSxS folder can grow that much.

Anyway, after all that, I'll be decommissioning the VM as I no longer need it. I only looked into this in case I need to do something like this again in the future. I can understand why some admins may create a Scheduled Task to periodically run the DISM command, but it does feel like a dirty hack.
Netflix Cancellations
Saturday 9th March, 2019 16:30
It wasn't a huge surprise when Netflix recently cancelled even more Marvel shows, but somehow in the last month (which has been so busy that I've not tweeted or blogged anything) I missed that Travelers wasn't renewed. On the plus side it got a pretty decent series finale, but I was really looking forward to Version 2.

And now I've discovered that shows I'd previously assumed were cancelled have been renewed! The End of The F**king World and Designated Survivor will get another season, but Flaked is still in limbo.
© Robert Nicholls 2002-2024
The views and opinions expressed on this site do not represent the views of my employer.
HTML5 / CSS3