powertips

Splitting Long Lines

To improve readability, you can break PowerShell lines into separate lines. Get-Service | Where-Object { $_.Status -eq 'Running' }...

Prompting for Function Parameters

With a simple trick, you can add a dialog window that helps users to provide the function parameters for your function. Simply use...

Playing Sound in the Background

If your script takes some time to complete, you may want to play a system sound file. Here is a sample illustrating how this can be done: # find...

Finding Executable

Many file extensions are associated with executables. You can then use Invoke-Item to open a document with this executable. Finding out just which...

Finding Uppercase Characters

If you'd like to find uppercase characters, you could use regular expressions. However, you would then provide a list of uppercase characters to...

Using Symbols in Console Output

Did you know that console output can contain special icons like checkmarks? All you need to do is set the console to a TrueType font like...

Test Nested Depth

When you call a function, PowerShell increases the nest level. When a function calls another function, or script, this will again increase the nest...

Aborting Pipeline

Sometimes you might want to abort a pipeline when a certain condition is met. Here is a creative way of doing this. It works all the way back to...

"Continue" and Labels

When you use the "Continue" statement inside a loop, you can skip the remainder of this loop iteration, and continue with the next....

Get Memory Consumption

To get a rough understanding how much memory a script takes, or how much memory PowerShell puts aside when you store results in a variable, here is...

Mutual Exclusive Parameters

Sometimes, PowerShell functions have parameters that should be mutually exclusive: the user should only be able to use either one, not both. To...

Parsing PowerShell Scripts

If you'd like to create your own color-coded PowerShell scripts, for example formatting them in HTML, here is a sample that gets you started....

Aborting the Pipeline

If you know beforehand how many results you expect from a pipeline, you can use Select-Object to stop the upstream cmdlets. This can save a lot of...

Passing Arrays to Pipeline

If a function returns more than one value, PowerShell wraps them in an array. However, if you pass the results to another function inside a...

Free PowerShell Module for Admins

One feedback we got on a previous tip directed us to "Carbon", a free PowerShell module crammed with useful PowerShell functions. One is...

Converting CSV to Excel File

PowerShell can easily create CSV files using Export-Csv, and if Microsoft Excel is installed on your system, PowerShell can then have Excel convert...

Who is Accessing Network Resources?

Provided you have Administrator privileges, you can use a simple WMI class to check whether someone is accessing your resources via the network:...

Disable Automatic Reboot After Update

Are you tired of Windows unexpectedly rebooting, just because some newly installed updates required a reboot? Like most things, you can control the...

Removing Whitespace (and Line Breaks)

You may know that each string object has a method called Trim() that trims away whitespace both from the beginning and end of a string: $text =...

Why "exit" can kill PowerShell

Occasionally, there are misunderstandings how "exit" works. Take this example: function abc { 'Start' exit 100 'Done' }...

Identifying Risky NTFS Permissions

Here is a quick and easy way to find NTFS permissions that are potentially dangerous. The script tests all folders in $pathsToCheck and reports any...

Get IP Address Geolocation

Would you like to know where a public IP address is located? Provided you have Internet access, you can query one of the public information...

Get Current IP Address

Here is a quick way to get all IP addresses assigned to your computer: #requires -Version 1 $ipaddress = [System.Net.DNS]::GetHostByName($null)...

1 45 46 47 48 49 98