posts-powershell

Using Paths in Prompts

The default PowerShell prompt displays the current location. When you are deep inside nested folders, this steals room for your actual input, and...

Help Make PowerShell a Better Place!

Rather than ranting about things that don't work as expected, or things you feel are missing, be constructive! The PowerShell team takes great...

Try CTRL+SPACE!

In the PowerShell ISE, there are two key shortcuts that can help you. Pressing TAB works just like in the console, and each time you press TAB, you...

Adding Command Not Found Handler

Whenever PowerShell comes across a command name that it does not know, you see a red error message. However, starting with PowerShell 3.0, there is...

Auto-CaseCorrecting PowerShell Code

Often when you write PowerShell scripts, you may not have used the correct casing, used only partial parameter names, or used aliases instead of...

Finding Loaded Assemblies

To dump all .NET assemblies that are loaded in a PowerShell session, try this: System.AppDomain]::CurrentDomain.GetAssemblies() | Where-Object...

Finding Cmdlet Parameter Aliases

PowerShell cmdlets and functions can have parameters, and these parameters can have (shorter) alias names. One prominent example is the...

Simplify Parameter Attributes

If all of your systems run PowerShell 3.0 or better, you can start shortening function parameter attributes. Boolean attributes now all default to...

Why GetTempFileName() is Evil

Some may have come across a .NET call that is supposed to generate random temporary file names: $path = [System.IO.Path]::GetTempFileName() $path...

Adding ValidateRange to a Variable

If you'd like to apply a numeric range of legal values to a variable, you can add a ValidateRange attribute to the variable, pretty much like...

Why $MaximumHistoryCount has a Limit

If you try and increase your maximum command history, you may run into some limitations: PS C:\> $MaximumHistoryCount = 100000 The variable...