Check Your Version of PowerShell
with $PSVersionTable
PowerShell has a built-in variable called $PSVersionTable, it displays numeric information about the Version, Build and Compatibility.
- $PSVersionTable
- Detailed PowerShell Version Check
- $Host – PowerShell Variable
- Running PowerShell 4.0 as Version 2.0
♣
$PSVersionTable
This variable was first introduced in PowerShell version 2.0.
# Windows PowerShell Version Check.
$PSVersionTable
Name Value
---- -----
PSVersion 4.0
WSManStackVersion 3.0
SerializationVersion 1.1.0.1
CLRVersion 4.0.30319.18408BuildVersion 6.3.9600.16406
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0}
PSRemotingProtocolVersion 2.2
Note 1: PSVersion is 4.0
Note 2: CLRVersion means Common runtime version.
Note 3: BuildVersion varies depending on the underlying operating system.
Detailed PowerShell Version Check
Here is a more detailed version check on the PowerShell executable.
# Windows PowerShell Version Check
Clear-Host
$PSVersionTable.PSVersion
Major Minor Build Revision 4 0 -1 -1
Guy Recommends: A Free Trial of the Network Performance Monitor (NPM) v11.5
SolarWinds’ Network Performance Monitor will help you discover what’s happening on your network. This utility will also guide you through troubleshooting; the dashboard will indicate whether the root cause is a broken link, faulty equipment or resource overload.
What I like best is the way NPM suggests solutions to network problems. Its also has the ability to monitor the health of individual VMware virtual machines. If you are interested in troubleshooting, and creating network maps, then I recommend that you try NPM now.
Download a free trial of Solarwinds’ Network Performance Monitor
$Host – PowerShell Variable
Here is an alternative method to check your version of Windows PowerShell.
# Windows PowerShell Version Check
$Host
Name: Windows PowerShell ISE Host
Version: 4.0 InstanceId: d36fdafd-f9e9-4642-bc85-6dea29105f61
UI: System.Management.Automation. Internal.Host.InternalHostUserInterface
CurrentCulture: en-GB
CurrentUICulture: en-US
PrivateData: Microsoft.PowerShell.Host.ISE.ISEOptions
IsRunspacePushed: FalseRunspace: System.Management.Automation. Runspaces.LocalRunspace
Note 4: As with PSVersionTable, the PowerShell Version is 4.0
Checking Your .Net Version
Here is a script which interrogates the NET Framework section of the registry.
Clear-Host
Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -Recurse |
Get-ItemProperty -Name Version -EA 0 |
Where { $_.PSChildName -Match '^(?!S)\p{L}'} |
Format-Table PSChildName, Version -AutoSize
PSChildName Version ----------- ------- v2.0.50727 2.0.50727.5420v3.0 3.0.30729.5420Windows Communication Foundation 3.0.4506.5420 Windows Presentation Foundation 3.0.6920.5011 v3.5 3.5.30729.5420Client 4.5.50938 Full 4.5.50938 Client 4.0.0.0
Note 5: Observe the use of -Recurse to drill down to the sub keys.
Note 6: Check the REGEX pattern matching: '^(?!S)\p{L}'
Recommended: Solarwinds’ Permissions Analyzer – Free Active Directory Tool
I like thePermissions Analyzer because it enables me to see WHO has permissions to do WHAT at a glance. When you launch this tool it analyzes a users effective NTFS permissions for a specific file or folder, and takes into account network share access, then displays the results in a nifty desktop dashboard!
Think of all the frustration that this free SolarWinds utility saves when you are troubleshooting authorization problems for user’s access to a resource. Give this permissions monitor a try – it’s free!
Download SolarWinds’ Free Permissions Analyser – Active Directory Tool
Running PowerShell 4.0 as Version 2.0
My main reason for downgrading the version from 4 to 2 is for testing. What I do is create a shortcut, and append -Version 2 to
Target: ..\powershell.exe -version 2.
Incidentally, Windows PowerShell is always installed in a sub-folder called v1.0.
Note 7: The syntax requires a space either side of -version.
Note 8: If you try -version 1 you still get PowerShell version 2!
Note 9: PowerShell v4 installs in a sub-directory called \v1.0\ (see above).
Name Value
CLRVersion 2.0.50727
BuildVersion 6.1.7601
PSVersion 2.0
WSManStackVersion 2.0
PSCompatibleVersions {1.0, 2.0}
SerializationVersion 1.1.0.1PSRemotingProtocolVersion 2.1
Other Useful PowerShell Testing Techniques
# PowerShell Version Test
Clear-Host
If ($PSVersionTable.PSVersion.Major -gt 3) {Write-Host "Supports PowerShell Version 4"}
Else {Write-Host "Only supports version 3"}
Note 10: When experimenting, you could substitute more useful code for "Supports Version 4"
See more PowerShell built-in variables »
Summary of PowerShell’s $PSVersionTable
Check your version of PowerShell with $PSVersionTable or $Host. You can also append a -version 2 switch to run PowerShell 3 as a previous version.
If you like this page then please share it with your friends
See more Windows PowerShell tutorials
• PShell Home • Introduction • Dreams • 3 Key Commands • PowerShell Help About • Get-Help
• PowerShell v 3.0 • Set-ExecutionPolicy • Get-Command • Cmdlet scripts • Import-Module
• PowerShell Version Check • Backtick • PowerShell examples • PowerShell ISE • Get-Member
Please email me if you have a better example script. Also please report any factual mistakes, grammatical errors or broken links, I will be happy to correct the fault.