We are providing scripts to clients that will be working only in Powershell 2.0.
Through command we can ensure that powershell 2.0 is installed like below
$version = Get-host | Select-object Version
But if we provide script how to ensure that they are executing it from Powershell 2.0?
When executing the script , Powershell 2.0 features may give script errors while initiating the script itself.Isn't it?
Check PowerShell Remoting is enabledWhen you run the Test-WSMan command on a local computer then you can see if PowerShell Remoting is enabled or not. Of course, you can run the command for another computer by using the -ComputerName parameter.
Windows Server 2016 or later: Open the “Server Manager”, and click on the “Manage > Remove Roles & Features”. On the Remove Features screen, expand Windows PowerShell and uncheck the “Windows PowerShell 2.0 Engine”. Click Next and Uninstall.
You can annotate your script with #requires
and state that it shouldn't run on anything less than PowerShell v2:
#requires -Version 2.0
(Side note: This is surprisingly hard to find even if you know vaguely that it exists.)
Relying on the host version is not the safest thing to do as the script can be run on hosts that do not have the same host version as PowerShell's version.
The $PSVersionTable variable was added in v2. You can check if the variable exists, if it does you're running v2 and above, you can also check PSVersion.Major property:
if($PSVersionTable)
{
'PowerShell {0}' -f $PSVersionTable.PSVersion.Major
}
else
{
'PowerShell 1'
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With