$PSVersionTable.PSVersion to determine the engine version. If the variable does not exist, it is safe to assume the engine is version
(Get-Host).Version are not reliable – they reflect
the version of the host only, not the engine. PowerGUI,
PowerShellPLUS, etc. are all hosting applications, and
they will set the host’s version to reflect their product
version — which is entirely correct, but not what you’re looking for.
PS C:\> $PSVersionTable.PSVersion Major Minor Build Revision ----- ----- ----- -------- 4 0 -1 -1