Chocolatey is a package management tool, similar to yum or apt-get for Windows. I won't get into the details here, as plenty of other people have already covered that. The short version is that I routinely burn down my development machine and start fresh and have a set of boilerplate installs that I like to automate on every machine creation.

Up until very recently, this approach has served me well with no issues, though I've talked with others who mentioned in passing that every once in a while Chocolatey would make upgrading certain programs difficult. I ran into one such case with Azure Powershell.

I recently heard about the Azure Secure DevOps Toolkit and wanted to take a crack at running it against some of my Azure environments. I ran it without issue on a work machine, but could not get the scripts to execute on my personal laptop. I kept running into issues with an old version of the AzureRM.Profile module, and just could not get it to update successfully by normal means. At some point, I remembered that I installed the Azure Powershell modules via Chocolatey and ran a choco upgrade command and was back in business. Well, after I mumbled a few obscenities and headbutted my desk a few times, that is.

Lesson learned: if installed via Chocolatey, upgrade via Chocolatey.