Hash tables can generate "calculated" columns. All you need to do is store two pieces of information: a "label," which serves as...
Powershell
Creating New Objects
There is a powerful new way in PowerShell v.2 to create new objects from scratch: You should first get yourself an empty hash table object, then add...
Exporting and Importing Credentials
You may have to use alternate credentials when you connect to different systems. You’ll find that a lot of cmdlets provide the -credential...
Exit a Script Immediately
Use the Exit statement if you run into a condition where a script should quit. The script breaks whenever you call exit from within your script. Add...
Get Remotely, Store Locally
When you start using PowerShell remotely, you may run into situations like this one: Invoke-Command -ComputerName remotepc { Get-Process |...
Dynamically Create Script Blocks
It is sometimes necessary to dynamically create script blocks. Here is an example how and why: function Get-RemoteLog($name) { $code =...
Remove Registry Keys and Values
Use Remove-Item to actually delete a registry key: function Remove-RegistryKey($key) { Remove-Item $key -Force} Use Remove-ItemProperty to delete a...
Using Real Registry Keys
In PowerShell, you access registry keys through virtual drives like HKCU: (for HKEY_CURRENT_USER) and HKLM: (representing HKEY_LOCAL_MACHINE). You...
Writing to the Registry
Adding or changing registry values is not always intuitive with PowerShell. Here is a function called Set-RegistryValue that will make your life...
Reading Registry Values
In PowerShell, you will need to use one of the Registry virtual drives to read from the Windows Registry as it is - not always intuitive. Here are...
Running Commands On Multiple Computers
You can work remotely not just for single computers. You can also run your commands against multiple computers like this: $computer = Get-Content...
Configuring WSMan Remotely for multiple computers
When working remotely in a peer-to-peer or cross-domain scenario, you will have to add all the computers you'd like to communicate with into the...
Remote Configuration in a Peer-to-Peer environment (or across domains)
By default, PowerShell requires Kerberos authentication to operate remotely, so you cannot use it in a simple peer-to-peer scenario. You can also...
Enabling PowerShell V.2 Remotely
Setting up the brand new PowerShell v.2 remotely in a domain environment is easy: simply run Set-WSManQuickConfig As long as you have proper...
Retrieving Error Messages From Your Event Logs
Event logs record all kinds of stuff. To find the important things, use Get-EventLog and query for the events you are seeking. In PowerShell v.2,...
Use Regular Expression to Validate Input
PowerShell can use regular expressions to validate user input. All you need is a regular expression that adequately defines the pattern you are...
Add New Properties To Your Objects
You can use Select-Object to add new properties to an existing object. In PowerShell v.2, Select-Object accepts a wildcard, which in turn adds all...
Calculating Time Differences
Use New-Timespan and submit a date if you'd like to know how long it is until next Christmas. New-Timespan automatically compares this date to the...
Analyze Parameter Binding
You probably know that PowerShell is pretty flexible when it comes to parameters you want to submit to cmdlets and functions. You can name them...
Why is my PowerShell console not blue?
When launching powershell.exe directly, you get a console with black background and only 300 lines of buffer text. When you launch PowerShell from...
Don’t be surprised by the Help bug
Get-Help is great for discovering cmdlet and function syntax but sometimes it fails on PowerShell v.2. Take a look at this: Get-Help...
Making Comment-Based Help Compatible
In a previous tip, you learned how to add Comment-Based Help information to your own functions so that Get-Help can auto-document the usage....
Using Comment-Based Help
PowerShell v.2 allows your functions to seamlessly integrate with the built-in PowerShell Help system. All you need to do is a Comment-Based- Help...
Using Block Comments
Another new feature in PowerShell v.2 is the introduction of a new block comment. Basically, anything you place between <# and #> will be...