For the last 8 or more years I have maintained my technical blog at http://csi-windows.com. My career focus has shifted a lot since starting that site and it was time to acknowledge this in the focus of my blogging.

The new location is https://cloudywindows.io. As in the past, some some of this content will be posted to Linkedin as well.

The focus of the new blog is cloudifying Windows. This means focusing on insights and code that help Windows be a better cloud player. It also means focusing on the technologies of Microsoft's Server 2016 release as it is a significant milestone in readying Windows to be better fit to cloud environments.

I hope you'll keep up to date with Cloud Windows by either following me on twitter or subscribing to the feed or email list at: https://cloudywindows.io.

The new location was also an exploration in deploying a blog with modern cloud and DevOps technologies.

The blog is generated by the static site generator "Hugo" and it is hosted on AWS CloudFront. Static sites have no back end computing - a limitation which means there is not much to hack as the entire site is static files. Static sites can be checked into source control - giving a whole host of "site as code" benefits.

In this case, it also means the shutdown of a dedicated server that was costing over $100/month - to be replaced by about $3/month (after the AWS free trial period). The new site utilizes CloudFront's free SSL to boost trust for Google and other search engines.

It has been the leanest site deployment I've ever pulled off - consuming about 80 hours of weekend time from discovery through deployment.

If you're a PowerShell enthusiast you've been hearing a couple things for a long time. The first is Linux admin envy for something on Windows - yes the veritable PowerShell got the attention of many a Linux afficiando. The other thing is hearing Microsoft saying "Someday PowerShell will be on Linux."

I started teaching DevOps around the year 1999. All together now: "Darwin, are you insane? The term, 'DevOps', is a lot newer than that!" That's absolutely true, but a concept always exists long before it is recognized and labelled...

In 1999 I was a newly hired Principal Consultant and I clearly remember getting a call from my manager. He was at a Microsoft partner event that demonstrated Microsoft's soon-to-be released technologies. One of hottest demos for Windows 2000 showcased the life-saving capabilities of a new software deployment automation technology that was code named "Darwin" It tickled him that it was named after the newest member of his team and he was calling to have a chuckle about it with me. That technology became Windows Installer or MSI.

Working at a client site a while back I came across a problem when attempting to install .NET 3.5 on Server 2012 R2. Microsoft decided to remove install source for this component from a default Windows build from ISO. Technically the feature should be pulled from Microsoft Updates if you ask for it - but there are certain conditions under which it generates an error instead. The classic answer you'll find posted a thousands times on the web is that you have to provide a pointer to the 275 MB ..\sources\sxs folder from the installation media. Not a problem if you only build servers in one environment, but it is a unnecessary logistical nightmare if you support the need to build them on workstation hypervisors (VMWare, Hyper-V, VirtualBox) or in multiple isolated cloud environments or tenants. Guess what - you don't actually have to do it - here's the fix...

If you're like me, you grow tired of having to install a seperate terminal utility on Windows to use ssh to connect to the vast array of devices and services that use it as a primary communications mechanism. Why can't it just be done from the command line like every other OS? That's changing...

So I get the question about the free upgrade to Windows 10 a lot. I am going to share with you the criteria I use for my own machines in hopes it might help you make your decision. If you think my criteria is a little overdone, just credit one year of hard experience to each point in the evaluation process ;)

Recently Microsoft has changed the Windows 10 Upgraded in Windows Update to a "Recommended Update". This dramatically expands the possibilities of some bad upgrade experiences for corporate users who do not realize the possible consequences of upgrading. Here's a little automation to help you with that...

PluralSight's virtual hack.summit() looks like it's going to be pretty epic! Presentations by creators of various technologies and languages and a $150,000 hackathon. Worth a look:https://hacksummit.org/

I need PowerShell, you need PowerShell, we all need PowerShell...but getting the time to invest in learning the technology can be a challenge! We all have a lot of pressure to be productive with our regular work tasks. When this pressure is combined with existing proficiency in another scripting language, it can be a recipe for not moving forward.

Let's discuss how becoming an advocate for PowerShell in your company helps create the room for yourself and others to learn this critical IT skill. The information we'll discuss is sourced from my own experiments while advocating PowerShell adoption within an IT group of about 250.

For one of my clients I created a PowerShell automation framework that could work stand alone (great for testing) or under SCCM - with no coding changes to switch. I was excited to wire up it's error reporting system to SCCM custom status MIFs. Somehow in the age of the API the SCCM development team decided to drop this very helpful feature - but only from "Applications" because the are so much "better"...

JSON is the native data format for data exchange with the REST APIs. In theory humans would never have to see the data format - so it's very detailed and nested syntax would not create any problems. Ahhh, but it's to tempting to not use it as a human authored specification file and the latest thing to use it as a hand coded input format is the new Azure automation known as Azure Resource Manager (ARM). I was on a quest to find a *Free* JSON editor that let me *edit* not just *view* the JSON data in a tree view. That quest ended when I found...

The PowerShell Production Preview was released on August 31st and the version number is 5.0.10514.6 !Back in May I published the article "Getting PowerShell 5 Running on Windows 7 and Server 2008 R2" It turns out there are a lot of poodles to get through the burning hoops to get a Windows 7 SP1 or Server 2008 R2 machine updated from PowerShell 2 or 3 to PowerShell 5. "...from PowerShell 2.0..." !?! - like who in their right mind is on PowerShell 2.0 ?

When I create cover letters and resumes, it is always a challenge to convey that although I don't code in a compiled language like C#, I understand and enjoy applying serious structured coding and testing techniques to the PowerShell code I write.

I believe this is not a small distinction when looking for DevOps professionals. Many of us from the Infrastructure side of the house cut our teeth on coding by hacking together useful scripts in languages whose capabilities were Neanderthal. A good portion of time was spent working around the limitations of the language, rather than being empowered by it's capabilities.

When I was a toddler my dad caught me repeatedly stepping on the cat's tail. Rather than react to my childishness with a reprimand, he simply asked "What are you doing?" I proceeded to explain to him what is now commonly called a "four square" matrix.

I was teaching a great team of Packaging Automation Engineers our course "Windows Application Internals for Packaging, Virtualization, Automation and Troubleshooting" and their company had recently gone through a re-branding which included a company name change. They were looking at a lot of work to comply with the request to change the start menu folder their company uses from the old company name to the new one. Hundreds of packages to rebuild and reinstall ? There has to be a better way! There is...

I am very excited that the PowerShell team has just delivered the April Preview that allows version 5 to run on Windows 7 SP1 and Server 2008 R2 (PowerShell Version 5.0.10105). For this preview version there are a few foibles to getting it running on Windows 7. The PowerShell team hopes to sort these out, but in the mean time I have put together a quick config that steps you though everything with one command line.

Wow - sometimes you don't know how easy you've got it until you step off the cliff! That cliff for me was attempting to replace VMware Workstation with Windows 8 Hyper-V. Hey Microsoft, you really should do something about this since I see it cited ad nauseam as a primary reason many IT Pros retreat from their attempt to adopt Win 8 Hyper-V and go back to VMware. But in the meantime, I have some steps to make this as easy as possible.