database-tools

Controlling Object Property Display

When you create functions that return custom objects, there is no way for you to declare which functions should display by default. PowerShell...

Logging Input Commands

If you'd like to maintain a log file with all the commands you entered interactively - in the PowerShell console as well as in the ISE editor -...

Protecting Functions

To prevent a function to be redefined or overwritten, you can write-protect it: function Test-Function { 'Hello World!' } Set-Item -Path...

Creating New Objects the JSON way

There are numerous ways how you can create new objects that you may use to return results from your functions. One way is using JSON, a very simple...

WhatIf-Support Without Propagation

You can enable the -WhatIf and -Confirm parameters in your functions too, and control which parts of your code get skipped if the user specifies...

Finding Enumeration Data Types

In a previous tip you learned that assigning an enumeration data type to a function parameter automatically enables argument completion in...

Get-WmiObject Becomes Obsolete

In PowerShell 3.0, while you still can use the powerful Get-WmiObject cmdlet, it is slowly becoming replaced by the family of CIM cmdlets. If you...

Finding Built-In Cmdlets

In times where cmdlets can originate from all kinds of modules, it sometimes becomes important to find out which cmdlets are truly built into...

Detecting STA-Mode

Here is a simple line that tells you whether PowerShell runs in MTA- or STA-mode: [Runspace]::DefaultRunspace.ApartmentState -eq 'STA' This...

Finding IP Address

There are various ways to determine the IP address that is assigned to your machine. Here is a rather unusual approach that uses text operators to...

Finding Object Properties in Powershell

Sometimes, you know the information you are after is present in some object property, but there are so many properties that it is a hassle to search...

Change Order of CSV Columns

If you have a CSV file and would like to change the order of columns, simply import it into PowerShell, use Select-Object to change the order, and...

Find Open Files

To find open files on a remote system, use openfiles.exe and convert the results to rich objects. Here is a sample (replace "storage1"...

Creating Custom Objects in Powershell

If you want to create your own custom objects, for example, to enable your functions to return rich objects, you can always use Select-Object like...

New Operators in PowerShell v3

There are four new operators in PowerShell v3: -shl: shifts bits to the left -shr: shifts bits to right and preserves sign for signed values -in:...

Validation Attributes On Variables

In PowerShell v2, function parameters could be decorated with validation attributes. In PowerShell v3, these attributes can now also be applied to...

Line Breaks After "." and "::"

In PowerShell v3 language syntax, it is finally allowed to have line breaks after "." and "::". These symbols are used to access...

Using Local Variables Remotely

If you want to send a script block to a remote computer, it is important to understand that the script block is evaluated on the remote computer. So...

$PSItem in PowerShell v3

In PowerShell, the variable "$_" has special importance. It works like a placeholder in scenarios like this one: PS> Get-ChildItem...