When running a console-based application, it typically returns a numeric exit code. The meaning of this exit code is up to the console-based...
Powershell
Ejecting CD Drive
Here is a fun little function that uses WMI to eject your CD drive. It does so by first asking WMI for all CD drives. It then uses the explorer...
Identifying CSV Delimiter
[a-z0-9 0="äöüß"()" _i="0" _address="0" theme_builder_area="post_content" /]
Identifying Duplicate CSV Headers (Part 2)
[Import-Csv _i="0" _address="0" theme_builder_area="post_content" /]
Identifying Duplicate CSV Headers (Part 1)
Serializing Date and Time in a Culture-Invariant Way
When you save date and time to text, for example when exporting to CSV, or when creating text reports, DateTime objects are converted to the date...
Converting Ticks to Date and Time (Part 2)
In the previous tip we explained how you convert date and time displayed as ticks to a true DateTime format. However, there are two different time...
Converting Ticks to Date and Time (Part 1)
Occasionally, you may run into strange date and time representations: they might be represented as a 64-bit integer like this: 636264671350358729....
Directly Importing Certificates (Part 2)
In the previous tip we showed how to import digital certificates with .NET methods on any version of PowerShell. Newer versions of PowerShell come...
Directly Importing Certificates (Part 1)
Installing certificate files on a computer can be done using .NET methods with any version of PowerShell. This would import a certificate file to...
Beware of Aliases
Can you spot what is wrong here? PS C:\> function r { "This never runs" } PS C:\> r function r { "This never runs" } PS C:\> When you run...
Dealing with Long File Paths
Historically, the Windows file system sometimes stalls when paths grow longer than 256 characters. There is a module available at the PowerShell...
Detecting Character Code 0
Occasionally, strings use a “Byte 0” character as a delimiter. Unlike most other delimiters, this delimiter does not show in text output...
Auto-Declaring Alias Names for Functions
You probably know that PowerShell supports alias names for commands. But did you know that you can define alias names for PowerShell functions...
Checking Operating System Version
Here is a simple and fast way of checking the operating system version: PS C:\> [Environment]::OSVersion Platform ServicePack Version...
Comparing Against $NULL
If you want to find out whether a variable contains $Null (nothing), always make sure you keep $null on the left side of the comparison. Most of the...
Examining Certificate Details
If you’d like to examine and view the details of a certificate file without the need to import it into your certificate store, here is a...
Exporting ActiveDirectory Module
To manage users and computers in your Active Directory from PowerShell, you need the ActiveDirectory module which comes as part of the free RSAT...
Managing NTFS Permissions
While there are not many built-in cmdlets to manage NTFS permissions, there is a growing list of open source PowerShell modules adding these. One...
Determine if Array Contains Value – Using Wildcards
If you’d like to know whether an array contains a given element, PowerShell provides the –contains operator. This operator does not...
Working with LDAP and Dates
LDAP filters are a fast and powerful way of retrieving information from Active Directory. However, LDAP filters use a very low-level date and time...
Using a PowerShell Parameter Validator
PowerShell function parameters support a ValidateScript attribute where you can assign PowerShell code. The code is invoked when the parameter...
Casting Data with Culture
When casting data (converting it to a different data type), PowerShell supports two approaches that can differ considerably. Here is an example:...
Invoking a Script Block
Code inside a script block can either be invoked by call operators such as „&“ or „.“, or by calling the Invoke()...