Let's assume you have a variable with a negative value, and you'd like to make it a positive value. Here's a simple way: Basically, this...
blog
Determining Registry Value Data Type
PowerShell can read and write Registry keys and values easily, but there is no a built-in way to check the data type of a given value. To find out...
Creating Colorized Excel Output (Part 2)
In a previous tip, we illustrated how you can feed HTML data to Excel in order to create formatted Excel sheets. Today, we'll show you an easy...
Creating Readable CSV-and HTML-Output
When you convert PowerShell results to CSV or HTML output, you may have discovered that some properties don't display correctly. PowerShell...
Creating Colorized Excel Output
PowerShell can send data to Excel using CSV files easily. Here's a short script creating a list of running services and opening it in Excel...
Finding Unused Drive Letter
Here's a simple way of finding unassigned drive letters: If you just want any unused drive letter, pipe the result to Get-Random. This approach...
Using Bitwise Shift Operators
PowerShell 3.0 introduces two new operators to bitwise shift. You can use these, for example, to convert GB to MB or KB to GB: -shr 10 basically...
Preventing Debugging (Part 2)
In a previous tip we explained how you can tell PowerShell not to debug certain functions by adding a special attribute: function test {...
Adding Suggestions to PowerShell Console
Suggestions are little pieces of text that can appear next to a PowerShell error message to better explain what went wrong. Suggestions only work in...
Examining Certificates
Here's how you can pick a certificate from your certificate store. This line will return certificates that have "Tobias" in the...
Removing Certificate Plus Private Key
Starting with PowerShell 3.0, the certificate provider has become a lot more powerful. It can now easily delete certificates plus their associated...
Preventing Flashing Console Window
When you run a console command inside a non-console PowerShell host (like the ISE editor), there will be a flashing window, indicating that the host...
Changing Current Time Zone
In a previous tip you learned how PowerShell can list all available time zone IDs. Today, we show you how to set the time zone using the utility...
Get Time Zone Info
There is a little known utility called tzutil.exe which can both set the current time zone and get all available time zones. Today, let's check...
Finding Office Installation Path
Microsoft Office has many different versions and exists as a 32-bit and 64-bit edition. Finding the installation path with PowerShell can still be...
Hiding Code from ISE Debugger
Typically, when you set breakpoints in your script and then step through your code using F11 or "Debug/Step Into", the debugger will visit...
Exploring PowerShell "Suggestions"
In the PowerShell console, you may have noticed "suggestions" that appear with common errors. Suggestions are designed to help you better...
Analyzing PowerShell Errors
PowerShell logs all errors in $error variable (unless the cmdlet uses -ErrorAction Ignore). $error contains the error records which in turn contain...
Using Script Validators with Variables
As pointed out in a previous tip, PowerShell 3.0 now supports the use of validators for variable assignments. This is a great way of ensuring that a...
Waiting for Service State
Most high-level cmdlets dealing with services have built-in code to wait for state changes. So when you run Restart-Service to restart a service,...
Controlling Numeric Range for Variables
In a previous tip we illustrated how in PowerShell 3.0, you can now use validators to restrict the data that can be assigned to a variable. Here is...
Killing All Remote PowerShell Sessions
In a previous tip we explained how you can enumerate who is connected to your machine via PowerShell Remoting, and how you can terminate individual...
Killing Remote PowerShell Sessions
To kill a remote PowerShell session that runs on your machine, you could kill the wsmprovhost.exe task associated with it, but identifying the...
Finding Remote Sessions Connected to Your Machine
Ever wanted to find out who is running a (hidden) remote PowerShell on your machine? Here's a simple one-liner: Get-WSManInstance -ConnectionURI...