During all of our travels across the PowerShell and Devops / Winops world we’ve come across code, tools and projects that we find useful or interesting. Below we’ve made an attempt to list some of the more interesting ones, unusual ones, popular ones and some you’ve unlikely to have heard of. I’ve avoided adding the famous ones. This is the list of the not-so famous.
If you have any suggestions or changes for this list, leave us a comment below.
The VBScript-to-Windows PowerShell Conversion Guide
This guide aims to help you to translate VBScript to Windows PowerShell. We should point out that this is not intended to be a “word-for-word” translation guide; instead, it’s designed to act as a reference guide as you begin writing your first Windows PowerShell scripts. It takes all the VBScript functions, statements, and operators and shows you, as much as possible, a Windows PowerShell equivalent.
Microsoft PowerShell Module Browser
Search all PowerShell modules and cmdlets from Microsoft.
LINQ (LINQ2Objects) for PowerShell for Powershell”)
Nothing more to be said about this. It’s LINQ for PowerShell!
Invoke-Build is a build and test automation tool which invokes tasks defined in PowerShell v2.0+ scripts. It is similar to psake but arguably easier to use and more powerful. It is complete, bug free, well covered by tests.
This is a quick and dirty module that simplifies deployments. You create a deployment config file, PSDeploy reads it and runs your deployment(s).
psake is a build automation tool written in PowerShell. It avoids the angle-bracket tax associated with executable XML by leveraging the PowerShell syntax in your build scripts. psake has a syntax inspired by rake (aka make in Ruby) and bake (aka make in Boo), but is easier to script because it leverages your existing command-line knowledge.
psake is pronounced sake – as in Japanese rice wine. It does NOT rhyme with make, bake, or rake.
Testing and Code Analysis
PSScriptAnalyzer is a static code checker for Windows PowerShell modules and scripts. PSScriptAnalyzer checks the quality of Windows PowerShell code by running a set of rules. The rules are based on PowerShell best practices identified by PowerShell Team and the community. It generates DiagnosticResults (errors and warnings) to inform users about potential code defects and suggests possible solutions for improvements. Read PSScriptAnalyzer Deep Dive on The Scripting Guys Blog for a good overview.
Console and Command Line Tools
Starting with PowerShell version 3.0, there is excellent support for tab expansion and Intellisense, but it is missing some useful features. This module addresses some of those shortcomings. In addition to making it simple to add custom argument completion, TabExpansionPlusPlus provides many useful custom argument completers “out of box” that can also serve as good examples of how to add your own.
Program prefixing for continuous workflow using a single tool. Allows you to prefix every subsequent command with a prefix (such as git). Awesomely useful. Has to be used to be appreciated!
Jump-Location is a powershell implementation of autojump.
It learns your behavior by keeping track of how long you spend in certain directories and favouring them over the ones you don’t care about. You don’t have to use Jump-Location as a replacement for cd. Use cd to go local, and use Set-JumpLocation to jump further away.
Simplistic interactive filtering tool. peco can be a great tool to filter stuff like logs, process stats, find files, because unlike grep, you can type as you think and look through the current results. Another little tool that you had no idea you needed until you used it!!
This is a simple module - it adds colours to the output of Get-ChildItem Cmdlet of PowerShell.
Magnificent app which corrects your previous console command.
- .NET Regular Expression Language - Quick Reference
A very useful reference on the .NET (and therefore PowerShell) Regular Expression patterns. Each section in this quick reference lists a particular category of characters, operators, and constructs that you can use to define regular expressions.
Also see the .NET Regular Expressions for a brief introduction.