Чтобы определить, установлен ли PowerShell, вы можете проверить реестр на наличие
HKEY_LOCAL_MACHINE\Software\Microsoft\PowerShell\1\Install
и
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\3
и, если существует, значение 1 (для установленного), как подробно описано в сообщении в блоге Проверьте, установлен ли PowerShell и версия .
Чтобы определить версию установленного PowerShell, вы можете проверить ключи реестра
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine\PowerShellVersion
и
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine\PowerShellVersion
Чтобы определить версию PowerShell, установленную из сценария .ps1, вы можете использовать следующую однострочную версию, как подробно описано на PowerShell.com в Какая версия PowerShell запущена .
$isV2 = test-path variable:\psversiontable
На этом же сайте также есть функция для возврата версии:
function Get-PSVersion {
if (test-path variable:psversiontable) {$psversiontable.psversion} else {[version]"1.0.0.0"}
}