pwsh/dev/functions/testPowerShellVersion.ps1 (44 lines of code) (raw):

function testPowerShellVersion { Write-Host 'Checking PowerShell edition and version' $requiredPSVersion = '7.0.3' $splitRequiredPSVersion = $requiredPSVersion.split('.') $splitRequiredPSVersionMajor = $splitRequiredPSVersion[0] $splitRequiredPSVersionMinor = $splitRequiredPSVersion[1] $splitRequiredPSVersionPatch = $splitRequiredPSVersion[2] $thisPSVersion = ($PSVersionTable.PSVersion) $thisPSVersionMajor = ($thisPSVersion).Major $thisPSVersionMinor = ($thisPSVersion).Minor $thisPSVersionPatch = ($thisPSVersion).Patch $psVersionCheckResult = 'letsCheck' if ($PSVersionTable.PSEdition -eq 'Core' -and $thisPSVersionMajor -eq $splitRequiredPSVersionMajor) { if ($thisPSVersionMinor -gt $splitRequiredPSVersionMinor) { $psVersionCheckResult = 'passed' $psVersionCheck = "(Major[$splitRequiredPSVersionMajor]; Minor[$thisPSVersionMinor] gt $($splitRequiredPSVersionMinor))" } else { if ($thisPSVersionPatch -ge $splitRequiredPSVersionPatch) { $psVersionCheckResult = 'passed' $psVersionCheck = "(Major[$splitRequiredPSVersionMajor]; Minor[$splitRequiredPSVersionMinor]; Patch[$thisPSVersionPatch] gt $($splitRequiredPSVersionPatch))" } else { $psVersionCheckResult = 'failed' $psVersionCheck = "(Major[$splitRequiredPSVersionMajor]; Minor[$splitRequiredPSVersionMinor]; Patch[$thisPSVersionPatch] lt $($splitRequiredPSVersionPatch))" } } } else { $psVersionCheckResult = 'failed' $psVersionCheck = "(Major[$splitRequiredPSVersionMajor] ne $($splitRequiredPSVersionMajor))" } if ($psVersionCheckResult -eq 'passed') { Write-Host " PS check $psVersionCheckResult : $($psVersionCheck); (minimum supported version '$requiredPSVersion')" Write-Host " PS Edition: $($PSVersionTable.PSEdition); PS Version: $($PSVersionTable.PSVersion)" Write-Host ' PS Version check succeeded' -ForegroundColor Green } else { Write-Host " PS check $psVersionCheckResult : $($psVersionCheck)" Write-Host " PS Edition: $($PSVersionTable.PSEdition); PS Version: $($PSVersionTable.PSVersion)" Write-Host " Parallelization requires Powershell 'Core' version '$($requiredPSVersion)' or higher" Throw 'Error - check the last console output for details' } }