HTML on web pages uses tags and other special characters to define the page. To make sure text is not misinterpreted as HTML tags, you may want to...
Powershell
Checking Host Name Type
To check whether a string contains a valid host name, you can use the CheckHostName() method provided by the System.URI type. It will return...
Validating a URL
To make sure user input is a valid URL, you can use the System.URI type. Try to convert the raw string into this type. If it works, the string is a...
Reversing Array Order
To reverse the order of elements in an array, the most efficient way is to use the [Array] type and its static method Reverse(): # Create an array...
Limiting Variables to a set of values
By adding a ValidateSetAttribute to a variable, you can force it to accept only values that match a given set. Once you add this attribute in the...
Limiting Variables to a certain Length
With strong typing, you can limit a variable to only a certain data type such as String: [String]$a = 'Hello' By adding a...
Validating IP-Addresses
To check for a valid IP-address, use the .NET Framework type System.Net.IPAddress and test whether the data can be converted into this format:...
Validating Email-Addresses
To check for valid email addresses, you can use the .NET Framework type System.Net.Mail.MailAddress and test whether the data can be converted into...
Exiting a Function
To exit a function immediately, use the return statement. The next function expects a name (including wildcards) and lists all matching processes....
Quick Drive Info
Want to quickly get a number of interesting details for any drive? Use the .NET System.IO.DriveInfo class like this: New-Object System.io.DriveInfo...
Ping and Range Ping
In PowerShell, you can access .NET methods directly so it is easy to add a ping functionality: $object = New-Object...
Validating User Input
When writing a function that accepts parameters, you can strongly-type parameters so that an exception occurs when the user submits the wrong...
Generate a New GUID
GUIDs are "Globally Unique Identifiers," which are so random that you can safely assume they are unique worldwide. GUIDs are used whenever...
Discover about-Topics
PowerShell comes with a lot of documentation. It is just sometimes hard to find. For example, to get a list of all available operators, do this:...
Assigning Multiple Variables
In PowerShell, you can initialize multiple variables in just one line. The following line sets all variables to the value 1: $a = $b = $c = $d = 1...
Automatic Aliases
All Get-Cmdlets (cmdlets that start with "Get") have an automatic type accelerator. You can use those cmdlets without the verb. So...
Exploring Privileges
On Vista with UAC enabled, you are not Admin by default. It might be interesting to find out if PowerShell currently has Admin privileges enabled....
Enumerating Drive Letters
Sometimes, you may want to find the next available drive letter for a network drive or enumerate drive letters for other purposes. An easy way to...
Listing Folders Only (and Finding Special Folders)
Get-Childitem returns both files and folders. If you just want to see folders, use a filter-based on folders that have a property called...
Finding (and Deleting) Duplicate Files
There are numerous ways of finding duplicate files. One approach uses Group-Object and groups your files by LastWriteTime and Length, assuming files...
Grouping Folder Items by Extension (and more)
Group-Object is a very powerful cmdlet as it takes one or more object properties and uses them to group the items. To get a quick overview of just...
Counting Items in a Folder
Get-Childitem returns all files in a folder. PowerShell returns an array if there are at least two items in a folder. To force PowerShell to always...
Converting Numbers
The .NET convert class is a great help when you need to convert numbers between different systems. Here's how you can convert a decimal into a...
Outputting HTML Reports
PowerShell can export results as HTML. Simply pipe the results to ConvertTo-HTML and save the result in a file. When you do that, it is wise to use...