All PowerShell Versions Here is a clever trick how to find out how many lines a string (not a string array!) contains: $text = @' This is some...
ps1
Discarding Results
All PowerShell Versions Since PowerShell returns anything that commands leave behind, it is particularly important in PowerShell scripts to discard...
Optional and Mandatory at the Same Time
All PowerShell Versions Can parameters be optional and mandatory at the same time? They can, based on context. A parameter can be mandatory when...
Important Math Functions
All PowerShell Versions Here are the four most important Math functions needed by administration scripts: [Math]::Floor(4.9) [Math]::Ceiling(3.2)...
Useful Path Manipulation Shortcuts
All PowerShell Versions Here are a bunch of useful (and simple to use) system functions for dealing with file paths:...
Finding Minimum and Maximum Values
All PowerShell Versions To find the smallest and largest item in a range of numbers, use Measure-Object: $list = 1,4,3,1,3,12,990 $result = $list |...
Combining Results
All PowerShell Versions Let's assume you want to identify suspicious service states like services that are stopped although their start mode is...
Countdown Hours
All PowerShell Versions Whether it is a birthday or an important game, you may want PowerShell to tell you just how many hours it is till the event...
Using -f Operator to Combine String and Data
All PowerShell Versions Strings enclosed by double-quotes will resolve variables so it is common practice to use code like this: $name = $host.Name...
Playing WAV Sounds
PowerShell 3.0 or later To play a WAV sound file in a background process, PowerShell can use the built-in SoundPlayer class. It accepts a path to a...
System Uptime
All PowerShell Versions Windows starts a high definition counter each time it boots, and this counter will return the milliseconds the system runs:...
Finding Attached USB Sticks
All PowerShell Versions If you'd like to know whether there are currently USB storage devices attached to your computer, WMI can help:...
Test Service Responsiveness
All PowerShell Versions To test whether a particular service is still responding, use a clever trick. First, ask WMI for the service you want to...
WMI Device Inventory
All PowerShell Versions The WMI service can report plenty of details about the computer hardware. Typically, each type of hardware is represented by...
Get Sleep and Hibernation Times
All PowerShell Versions If you want to find out whether a computer is frequently put into sleep or hibernation mode, here is a function that reads...
Understanding Sequential Filtering
All PowerShell Versions When you parse text-based log files, or need to filter other types of information, you typically use Where-Object. Here are...
Filtering Hotfix Information
All PowerShell Versions Get-HotFix is a built-in cmdlet that returns the installed hotfixes. It has no parameter to filter on hotfix ID, though....
Getting Shutdown Information
All PowerShell Versions Windows logs all shutdown events in its System event log. From there, you can extract and analyze the information. Here is a...
Copying Command History…
All PowerShell Versions If you played with PowerShell and suddenly realize that you would actually like to keep the commands you played with, try...
Searching Files with Regular Expressions
All PowerShell Versions Get-ChildItem does not support advanced file filtering. While you can use simple wildcards, you cannot use regular...
Searching Files with Regular Expressions
All PowerShell versions Get-ChildItem does not support advanced file filtering. While you can use simple wildcards, you cannot use regular...
Getting Files with Specific Extensions Only
All PowerShell versions When you use Get-ChildItem to get a list of files, you may have noticed that the -Filter parameter occasionally returns more...
Correcting ISE Encoding
All PowerShell versions When you run a console application inside the ISE editor, non-standard characters such as “ä” or...
Using the OpenFile Dialog
PowerShell 3.0 and newer Here’s a quick function that works both in the ISE editor and the PowerShell console in PowerShell 3.0 and above):...