In a previous tip we shared how you can use PowerShell to create restore points and restore your system state in case something went bad. There are...
database-tools
Backing Up System State
Let's assume your script needs to change a bunch of system settings. The worst thing that could happen is if your script breaks in the middle of...
Discarding Unwanted Information
If you want to dump results from a command, there are a number of ways. While they all do the same, they have tremendous performance differences:...
Investigating USB Drive Usage
With two lines of PowerShell code, you can dump the USB storage history from your registry and check which devices were used in the past: PS>...
Installing MUI-Packs
The current PowerShell V3 Beta requires an English Windows operating system. That's bad news for anyone running Windows 7 Professional or Home...
Finding All Object Properties
By default, PowerShell only displays a limited set of object properties. To view all available properties, add the following pipeline element:...
Finding True WMI Properties
When you use Get-WmiObject to retrieve WMI objects, PowerShell adds a number of supporting properties. If you want to display only the native WMI...
Finding Current Script Paths
Here's a useful function that you can paste into your scripts. It will tell you the current location the script is executed from. function...
Creating New Scripts in ISE
Often, you first play around with PowerShell commands interactively, and then once those commands do what you want, you can copy them to your script...
Copying Command History to Clipboard
Here's a one-liner that copies all commands from your command history to the clipboard. From there, you could paste them into your favorite...
Check Out Nested Hash Tables
In our last tip we looked at nested arrays (jagged arrays) which may have been a bit confusing. Today, we look at nested hash tables. They may look...
Jagged Arrays
This may not be for everyone: have a look at how you can create "jagged arrays". Here's a jagged array which really is a nested array:...
Making netstat.exe Object-Oriented
Netstat.exe is a useful tool, like many other console-based applications. Take a look how relatively easy it is for PowerShell to take the...
Finding Built-In Administrators Group
Using System User or group names like 'Administrators' in scripts may not always be a good idea because they are localized and may not work...
Using Advanced Breakpoints
PowerShell supports dynamic breakpoints. They trigger when certain requirements are met. Like regular breakpoints, they all require that your script...
Matching Stars
Asterisk serve as a wildcard, so how would you check for the presence of an asterisk? In a previous tip we used regular expressions for this, but...
Debugging PowerShell Scripts
In PowerShell ISE, there are little-known built-in debugging features. Provided you have saved your script to a file, you can press F9 to set...
Stopping Services Remotely
Stop-Service cannot stop services remotely. One easy way of doing so is Set-Service: Set-Service -Name Spooler -Status "Stopped"...
Easier ForEach/Where-Object in PSv3
In the upcoming PowerShell v3 which you can already download as a Beta version, using Where-Object and ForEach-Object becomes a lot simpler. No...
Lunch Time Alert
Here's a fun prompt function that turns your input prompt into a short prompt and displays the current path in your PowerShell window title bar....
Finding Files Owned by a User
Here's a simple filter that will show only those files and folders that a specific user is owner of: filter Get-Owner...
Am I Privileged?
There are numerous ways to find out if a script runs elevated. Here's a pretty simple approach: PS> (whoami /all | Select-String...
Checking User Privileges
whoami.exe is a useful little tool that ships with Windows 7/Server 2008 R2, and it becomes even more useful when you instruct it to output its...
Resolving Paths
Paths can be relative, such as ". \file.txt". To resolve such a path and display its full path, you could use Resolve-Path: PS>...