我如何确定计算机上安装了哪种版本的PowerShell,以及是否确实安装了PowerShell?


当前回答

您可以通过完成以下检查来验证是否安装了Windows PowerShell版本:

单击开始,单击所有程序,单击附件,单击Windows PowerShell,然后单击Windows PowerShell。在Windows PowerShell控制台中,在命令提示符处键入以下命令,然后按ENTER键:获取主机|选择对象版本

您将看到如下输出:

Version
-------
3.0

http://www.myerrorsandmysolutions.com/how-to-verify-the-windows-powershell-version-installed/

其他回答

这是一个很老的问题,但仍然相关,只是问题的性质在2023年有所不同。找到版本很容易,但首先我们必须启动正确的可执行文件。为此,我们基本上回到了注册表中。

reg query "HKLM\SOFTWARE\Microsoft\PowerShell\1" /v Install >nul 2>&1
if %ERRORLEVEL% EQU 0 (
  :: Default to PowerShell 5 if both are installed
  set PSEXE=powershell
) else (
  set PSEXE=pwsh
)
echo Using %PSEXE%
%PSEXE% -ExecutionPolicy bypass -command "& { ... ; exit $LASTEXITCODE }"

通过检查环境变量可以获得其他提示,但我认为测试注册表中的“Windows”PowerShell是最安全的。

Microsoft建议的用于检查是否安装了PowerShell并确定已安装版本的前向兼容方法是查看两个特定的注册表项。我在这里复制了细节,以防链接断开。

根据链接页面:

根据任何其他注册表项、PowerShell.exe版本或PowerShell.exe的位置,不能保证长期工作。

要检查是否安装了任何版本的PowerShell,请检查注册表中的以下值:

密钥位置:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shell\1值名称:安装值类型:REG_DWORD值数据:0x00000001(1

要检查是否安装了PowerShell版本1.0或2.0,请检查注册表中的以下值:

密钥位置:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shell\1\PowerShellEngine值名称:PowerShellVersion值类型:REG_SZ值数据:<1.0|2.0>

您可以通过完成以下检查来验证是否安装了Windows PowerShell版本:

单击开始,单击所有程序,单击附件,单击Windows PowerShell,然后单击Windows PowerShell。在Windows PowerShell控制台中,在命令提示符处键入以下命令,然后按ENTER键:获取主机|选择对象版本

您将看到如下输出:

Version
-------
3.0

http://www.myerrorsandmysolutions.com/how-to-verify-the-windows-powershell-version-installed/

用选择运算符扩展答案:

Get-Host | select {$_.Version}

您还可以从PowerShell命令行调用“host”命令。它应该为您提供$host变量的值。