HOW TO: Get PowerShell version info

While the command ver (short for version) could get you the version info at a DOS/Windows command prompt, and winver does it in the Windows GUI, if you’re stumbling to find the version of Windows PowerShell installed on your computer, the command (cmdlet is the correct and official PowerShell term) you’re looking for is Get-Host.

You can also use the variable $host to get the same information. Note to the Windows PowerShell team – perhaps adding an alias for ver so it works out of the box would’ve been a good idea folks… ! :)

But the PowerShell team did build an easy way to add aliases for cmdlets. To add ver as an alias for the Get-Host cmdlet:

New-Alias ver get-host

The default output from the Get-Host cmdlet includes the Windows PowerShell version and the current locale and language settings.

Name : ConsoleHost
Version : 1.0.0.0
InstanceId : 63970d5c-7cc0-4fb4-9741-aa325b6b2cc3
UI : System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentCulture : en-US
CurrentUICulture : en-US
PrivateData : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy

If you’re on PowerShell 2.0 or later, the output includes PowerShell runspace info:

Name : ConsoleHost
Version : 4.0
InstanceId : 5d3e051e-4e04-4ed7-925f-4f0fb535472d
UI : System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentCulture : en-US
CurrentUICulture : en-US
PrivateData : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy
IsRunspacePushed : False
Runspace : System.Management.Automation.Runspaces.LocalRunspace

Couple of reader comments provide some more functionality. For example, as Aaron commented, to retrieve only the version number without any extra details:

$host.version.tostring()

The $psversiontable environment variable shows version info for additional components:

Name Value
—- —–
PSVersion 4.0
WSManStackVersion 3.0
SerializationVersion 1.1.0.1
CLRVersion 4.0.30319.34014
BuildVersion 6.3.9600.17090
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0}
PSRemotingProtocolVersion 2.2

For more information, see Get-Host cmdlet reference in Windows PowerShell help.

Also check out Windows PowerShell Version 2 Cmdlets.

Written by

Bharat Suneja

9 Comments

  1. vivek

    or you can type $host. there’s lots of interesting variables, try get-variable and it will show you all.

  2. Aaron

    $env:psver = $host.version.tostring()

  3. Thomas

    One small point I discovered today. This is the version of the HOST, not of PowerShell itself. When run from, say the PowerShell prompt, it is indeed the same version. But if you run this command from the PowerShell Plus prompt, you get a different value (ie the version of the host, or of PowerShell Plus itself).

    As we move forward into PowerShell Version 2, this distinction becomes more important.

  4. liamfinnie

    >$PSVersionTable

    Name Value
    —- —–
    CLRVersion 2.0.50727.3082
    BuildVersion 6.1.6949.0
    PSVersion 2.0
    PSCompatibleVersions {1.0, 2.0}

  5. Anonymous

    Thanks, that was very useful information.

  6. Anonymous

    thx

  7. Anonymous

    Thanks! I was at a loss as to why I did not have PS 2.0 on my WIN7 machine. Of course now that I know how to check the version, I know its 2.0. Life is normal once again.

  8. Brian Johnson

    Thanks.

Leave a Comment

Your email address will not be published. Required fields are marked *