powertips

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...

Using Closures

Script blocks are dynamic by default, so variables in a script block will be evaluated each time the script block runs. By turning a script block in...

Discovering Useful Console Commands

There are plenty of useful console commands such as ipconfig, whoami, and systeminfo. Most of these commands hide inside the Windows folder....

Check Windows License Status

In a previous tip we explained how you can use slmgr, a built-in VBScript, to check Windows licensing state. The core information used by this...

Calling Native Commands Safely

Sometimes it isn't easy to call a command-line tool with some arguments. The PowerShell parser may interfere, and your call may even return...

Manage Windows License Keys

To automatically manage Windows license keys, use slmgr which is a VBScript that you can call from PowerShell. Just make sure that cscript.exe is...

Unzipping Files

Unfortunately, there is no built-in cmdlet to unzip files. There are plenty of 3rd party tools, many of which are free. If you cannot use these...

Downloading Files from Internet

PowerShell v3 comes with a hugely useful new cmdlet called Invoke-WebRequest. You can use it to interact with websites which also includes...

Renaming Object Columns

In some of our previous tips, we showed how you can turn comma-separated data returned from different console tools into rich PowerShell objects....

Deleting Certificates

If you want to permanently delete a digital certificate in your certificate store, here is how. This line lists all your personal certificates:...

1 62 63 64 65 66 98