Behind the PowerShell Pipeline
Subscribe
Archives
Understanding .NET Enumerations
$ · June 15, 2023
I want to continue my introduction to the .NET Framework by discussing enumerations. This is a programming structure that is often used in PowerShell. Most...
.NET for IT Pros
$ · June 13, 2023
Not that long ago, I asked for feedback on this newsletter. One of the things I was looking for was content suggestions. I can’t promise I’ll cover...
Creating a PowerShell Weather Command Part 8
$ · June 8, 2023
I truly hope you’ve been learning something about developing a PowerShell tool and writing Pester tests. You can easily knock out a quick and dirty script or...
Creating a PowerShell Weather Command Part 7
$ · June 6, 2023
After a brief break, let’s return to the weather tool and Pester tests. When we ended last time, we had a function to get a location that could be piped to...
Getting Your Group On
$ · May 25, 2023
I thought I’d give you a break from the weather function and Pester test. We’ll pick that series later. In the meantime, I thought I’d dive into one of my...
Creating a PowerShell Weather Command Part 6
$ · May 23, 2023
Get-OMLocation
Creating a PowerShell Weather Command Part 5
$ · May 18, 2023
Parameter Validation
Creating a PowerShell Weather Command Part 4
$ · May 16, 2023
Weather Codes
Creating a PowerShell Weather Command Part 3
$ · May 11, 2023
Adding command validation
Feedback Follow-Up
$ · May 10, 2023
This is a quick follow-up survey for my premium subscribers only. I’d like to get an idea of the number of articles showing up in your email. I’d also like a...
Creating a PowerShell Weather Command Part 2
$ · May 9, 2023
Test-Driven Development
I Need to Hear From You
May 5, 2023
When I started this newsletter, I had some ideas about the type of content I wanted to create. I very much wanted to get into the intangible qualities of...
Creating a PowerShell Weather Command
$ · May 4, 2023
Part 1
Parameter Power
$ · May 2, 2023
When creating a PowerShell function, you've often heard me say, "Think about who will use it and what are their expectations?" As a corollary, you want to...
Data Files as Script Files
$ · April 25, 2023
Last year, I wrote an article about the importance of separating PowerShell code from the data you need to run that code. I still believe this is a critical...
Switch Hitting with PowerShell
$ · April 20, 2023
Last time we started diving into using the Switch construct in PowerShell scripting. I think this is an excellent alternative if you need to build a large...
Switching Things Up in PowerShell
$ · April 18, 2023
Learning the mechanics and syntax of PowerShell is not that difficult. Anyone can read the documentation for a concept like an IF statement and understand...
Logging with PowerShell Transcripts
$ · April 13, 2023
Over the course of the last several articles, we’ve been exploring how to use and manage PowerShell transcript files. Before we move on, I wanted to show you...
PowerShell Transcript Tools
$ · April 11, 2023
In the previous article, we looked at PowerShell’s transcription feature. Running Start-Transcript is a terrific way to maintain an audit log or history of...
PowerShell Transcript Techniques
$ · April 6, 2023
A helpful PowerShell feature that I don’t think many people take advantage of is transcription. It is very easy to create a text-based log file. The log file...
Building Class-Based PowerShell Modules
$ · April 4, 2023
Over the last several weeks, we’ve been exploring how to script with a PowerShell class. The last step is to take everything we’ve covered and wrap it up in...
Climbing the PowerShell Class Family Tree
$ · March 23, 2023
When I started this series, I pointed out that a PowerShell class, while easy to define, lacks all the features of a traditional class defined in a language...
Advanced PowerShell Class Extensions
$ · March 21, 2023
I think today’s article will be fun. We’ve been exploring how to write and use PowerShell classes in our scripting projects. I hope you’ve grabbed the demo...
Adding PowerShell Class Bells and Whistles
$ · March 16, 2023
I hope you’ve been enjoying this series of articles on developing with PowerShell classes. As you’ve seen, creating a PowerShell class is not that difficult,...
Extending PowerShell Classes with Methods
$ · March 14, 2023
We are in the middle of a series of articles teaching how to write PowerShell-based classes. This is a different kind of scripting technique, that I know...
PowerShell Construction Area
$ · March 9, 2023
In the last article, I started a series focused on scripting with PowerShell classes. The eventual goal is to separate the object definition from the code...
Introduction to PowerShell Class Scripting
$ · March 7, 2023
I know you’ve heard me go on and on about the importance of working with objects in the PowerShell pipeline. It is this paradigm that puts “Power” in the...
PowerShell ISE Snippets
$ · February 24, 2023
In past articles, I’ve written about using snippets in VS Code, although I might revisit this in-depth in a future article. As much as I like VS Code and...
More PowerShell Parameter Planning
$ · February 21, 2023
In the last article, I started an exploration of parameter planning. The mechanics of adding a parameter to your PowerShell function is easy. But deciding...
PowerShell Parameter Planning
$ · February 16, 2023
Over the last year, I’ve written a lot about PowerShell scripting. I’ve shown you many PowerShell functions and explained their mechanics. Parameters play an...
"Live" PowerShell Tool Making Part 4
$ · February 14, 2023
Welcome back to the conclusion of my “live” PowerShell toolmaking project using the Crescendo module. I’ve been building a module around the GitHub command...
Live PowerShell Tool Making Part 3
$ · February 9, 2023
We’re back once more to continue building a Crescendo module around the GitHub command line tool gh.exe. You’ve seen how I approach building a PowerShell and...
"Live" PowerShell Tool Making Part 2
$ · February 7, 2023
I hope you enjoyed the last article. I know I had a lot of fun writing and coding it. So much so that my brain is racing in a dozen directions over ways to...
"Live" PowerShell Tool Making Part 1
$ · February 2, 2023
I want to try something new, and I expect it will take more than one article, which is why this is titled Part 1. Last week I introduced you to creating...
Building Command Parameters with Crescendo
$ · January 26, 2023
In the previous article, we began exploring the process of using the Crescendo module. This module is designed to make it easier to wrap native command-line...
Building to a Command
$ · January 24, 2023
noun: crescendo; plural noun: crescendos; plural noun: crescendi1.the loudest point reached in a gradually increasing sound.a gradually increasing sound2.the...
Coding Confirmed Commands
$ · January 19, 2023
Let’s pick up where we left off in the last article. We’ve been looking at adding support for -WhatIf and -Confirm to your PowerShell commands. You get these...
Should I Stay or Should I Process Now?
$ · January 17, 2023
One of my goals for this newsletter is to help you write better PowerShell scripts. More than that, I want to provide the information you need to create...
Secret Store Automation
$ · January 12, 2023
In the last article, I introduced you to the secrets management tools from Microsoft. This toolset provides a secure way to store information like...
Can You Keep a Secret
$ · January 10, 2023
In the last article, I introduced using CMS messages to protect sensitive information. This is a good technique for encrypting a block of text, but probably...
Getting the Message in PowerShell
$ · January 5, 2023
One of the challenges with scripting in PowerShell is to protect sensitive information. We all know it is bad practice to hard-code credentials and passwords...
A Changelog for the Better
$ · January 3, 2023
It is a new year which means it is time for a few resolutions. One change I have in mind for the new year is maintaining better change logs for my PowerShell...
Creating a Learning Plan for 2023
December 22, 2022
Congratulations! You made it through another year. This was not an easy year for the tech industry. Every day I read about more layoffs and re-organizations....
Clean Text Files with Regular Expressions Revisited
$ · December 20, 2022
In the November 2022 Ask Jeff article, I shared a simple regular expression pattern you could use to filter out blank and commented lines, using a #...
Cleaning Your PowerShell House
$ · December 15, 2022
As you develop your PowerShell scripting skills, you will advance from creating simple scripts to writing advanced functions that consume pipeline input and...
Climbing Higher in the Abstract Syntax Tree
$ · December 13, 2022
In the previous article, I introduced you to the AST (Abstract Syntax Tree). This is how PowerShell parses your commands and scripts. Tools like VS Code take...
Climbing the Abstract Syntax Tree
$ · December 8, 2022
If you’ve been using PowerShell for any length of time, you’ve noticed that features like tab completion fail if there is an error in your command. Or when...
Critiquing Code Comments
$ · December 6, 2022
I am assuming that if you are reading this article, you are writing PowerShell code. I assume you are at least writing simple PowerShell scripts. Probably...
Leveraging PSObject
$ · November 22, 2022
In the last article, we dove into the internals of how PowerShell creates and defines objects. It doesn’t matter if it is the result from running Get-Process...
Building PowerShell Objects
$ · November 17, 2022
One reason that PowerShell is so valuable to IT professionals is that a great deal of work went into it to take advantage of the .NET Framework but not...
Newer archives
Older archives
GitHub
Bluesky
LinkedIn
About Jeff