Logo What the Shell?!


Building a Package Builder Web Endpoint

Package Builder - Web Edition Preface: This isn’t officially supported by Chocolatey. But, I’m nothing if not adventurous. What’s the saying? “Where there’s a will, there’s a way”? Anyway, I digress, onto the good stuff. Earlier today I had a conversation with myself, as often happens. It went a little something like this. Self: You haven't done something ridiculous in a while. Busy-Self: I know, self, because I'm busy! Self: But _this_ would be so cool!

Sep 17, 2020

Use Universal Automation for Choco Package Internalizer

So @adamdriscoll created this new amazing product called Universal Automation. It’s a PowerShell job scheduling platform built on top of his awesome Universal Dashboard product. I was fortunate enough to be invited into the Private Beta, so I’ve been playing with it off and on over the last couple of weeks. I had the idea this evening to see “Can I use this to do Chocolatey Package Internalization?” We have documentation on setting it up in Jenkins over here.

Jan 7, 2020

Stop Installing Software Manually

Getting started with the Chocolatey package manager for all your Windows software needs.

Nov 16, 2019

Imposter Syndrome is Bullshit

There. I said it. I wanted to take a little bit of time to recap my weekend spent in Raleigh, North Carolina, at the PowerShell Saturday event put on by the local user group there. Man, what a great time. It was exciting to see so many people (around 100!) come together to learn from one another. There were many first time speakers at the event, and it was refreshing to see and hear them be successful.

Sep 23, 2019

Demystifying Pipeline Build Scripts

There are a myriad of ways to leverage build scripts inside of Azure DevOps Pipelines, and all the other popular CI/CD providers. In fact, there are whole modules dedicated to it including InvokeBuild,PSDepend,PSake and others. I hate all of them. Not necessarily because they are bad, quite the opposite. I think they are each quite good and very well written. However, when I build out my pipelines I like to keep things as simple as possible.

Aug 31, 2019

ELI5! Chocolatey Metapackages Edition

Chocolatey has the concept of a “meta” package. These types of packages don’t typically include any sort of logic that would leverage installation, upgrade, or uninstallation scripts. Alternatively, they provide a means to bundle existing packages as dependencies, giving you a single package to install, which in turn will install all of those subsequent dependent packages. Controlling what packages you wish to include is handled entirely in the dependencies section of a nuspec file.

Aug 27, 2019

Use Azure Pipelines to publish Chocolatey Packages

Hey folks! Wow, it’s been quite the dry spell, eh? Apologies, I’ve been super busy with my new role with Chocolatey Software. It’s involved a lot of Powershell, and the opportunity to go to a few conferences and network with you, the Community. If we’ve met in person, great! I’m so glad I’ve got to meet you! If we haven’t yet, look out for me at some upcoming events like AnsibleFest, Microsoft Ignite!

Jul 24, 2019

ELI5: Powershell objects

Hello everyone! I apologize for the gap in posts here, it’s been quite a busy season of life starting a new job at Chocolatey Software, and going to several conferences as well as other travel. In this post we will be taking a look at Powershell objects, and I’ll try to explain them in a very clear way that will help you understand them better, and ultimately (hopefully!) make your code endeavors easier, and more enjoyable.

Jun 1, 2019

Unwrapping the $PSCmdlet variable

I’m sure we’ve all seen it in code online. We’re checking out some code, probably on Github, and we notice folks using this strange $PScmdlet thing. When I first started I considered this variable “black magic”, and really after getting used to it and what it does I still kinda feel like that’s what it is. But let’s dive in and unwrap it so we can see how the magic trick actually works.

Mar 24, 2019

It's OK to fail!

We’ve all hit that low spot, when we are working with an especially difficult problem, and the code we are writing to try and solve it just won’t work the way we want it too. I often find that it is in these moments, when I’m contemplating throwing in the IT towel and becoming a hermit, that I grow the most. Debugging your code, or more often than not, making a bit of code you’ve scraped from online work for your use case lends to many opportunities to learn about a new cmdlet, method, or technique that you have not encountered before.

Dec 27, 2018

Write good help...it's important!

There’s nothing more frustrating that running Get-Help against a cmdlet, and not getting a lot of useful information back. The Powershell Help System is a robust tool that makes your scripts extremely discoverable to its users. A good Comment Based Help block, in my opinion, contains the following useful information: A synopsis (typically a brief statement) and description (typically a longer explanation of the script functionality), which tells the end user what the script does.

Nov 23, 2018

Being Cheeky With Speech

Goofing off in the shell This was born of a trying to be clever and funny in the Powershell Slack channel last night. It ended up working better than expected. Want to make a coworker’s cheeks turn red? Wanna make your significant other roll their eyes at you? Don’t worry, I’ve got you covered. Save the following to a ps1 file, or just copy and paste it into a console, and enjoy your console telling you random pickup lines from the internet.

Nov 20, 2018

Setting up Jeykll to build with AzDOS

I spent the better part of the weekend exploring the various ways I could leverage CI/CD to streamline getting content that I’ve written onto my blog. This post will be about my journey, and hopefully provide a useful resource to you, should you choose to do something similar. Goals and Challenges When I write content, I want a couple of things to happen. I want Jeykll to build on my own schedule.

Nov 18, 2018

Adding Pipeline Support to Your Scripts!

You’ve probably used the pipeline 1,000 times and not thought about how exactly you can send the output of one command to another. It’s actually, incredibly simple to do, and enables you to have a LOT of flexibility in your scripts! Pipeline overview If you are just starting out in Powershell and stumbled across this blog post, I’d like to take a moment to explain just exactly the Powershell Pipeline is, and how it works.

Nov 18, 2018

Using Toast notifications in Powershell

Notifications can be quite a bit more than just those annoying pop-ups you see down by your system clock from time to time. When created using Powershell, you can get an incredible amount of functionality out of them. Toasts are more than pop-ups Some of my favorite uses include: Giving myself reminders Alerting when things happen on remote endpoints Alerting other staff of important tasks that need done Receiving alerts from monitoring platforms when an issue occurs Getting started There are a couple of ways to create toast notifications on Windows 10.

Nov 16, 2018