当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 如何检查您的 PowerShell 版本 [仅 1 个 Cmd]

作者:精品下载站 日期:2024-12-14 03:41:10 浏览:12 分类:玩电脑

如何检查您的 PowerShell 版本 [仅 1 个 Cmd]


PowerShell 版本决定您可以使用哪些功能。因此,在运行特定脚本或 cmdlet 之前,您可能需要检查您的 PowerShell 版本。

您可以使用单个命令检查正在使用的 PowerShell 版本。如果您使用的是 PowerShell 7,那么当您打开它时它甚至会自动显示。

在本文中,我将解释如何快速检查 PowerShell 版本,以及如何在脚本内或远程计算机上使用此方法。

检查 PowerShell 版本

要检查您正在使用的 PowerShell 版本,您可以在 PowerShell 中使用单个命令来查找确切的版本号:

$PSVersionTable

[玩转系统] 如何检查您的 PowerShell 版本 [仅 1 个 Cmd]

PSVersion 值是您正在使用的 PowerShell 版本。在上面的示例中,我们使用的是 PowerShell 7。正如一开始提到的,当您打开 PowerShell 7 时,您还会看到第一行打印的版本号:

[玩转系统] 如何检查您的 PowerShell 版本 [仅 1 个 Cmd]

在脚本中获取PowerShell版本

例如,当您创建使用仅在 PowerShell 7 或 5.1 中工作的特定 cmdlet 的 PowerShell 脚本时,您将需要构建版本检查。

我们不需要获取所有版本信息,而是可以通过直接选择主版本号来获取主版本号(例如 5 或 7):

$PSVersionTable.PSVersion.Major

# Returns
7

使用 $host 变量

另一个经常提到的选项是使用 $host 变量来检查 PowerShell 版本。 $host 变量返回有关运行 PowerShell 的主机的信息。这在本地 PowerShell 控制台中非常有效:

$host

# Or directly the version number
$host.version

但是,在远程计算机上或在 Visual Studio 代码中使用时,使用 $host 变量或 Get-Host cmdlet 会导致问题。问题是,它返回有关主机的信息,而不是有关 PowerShell 引擎的信息。

以下面的示例为例,如果我们查看 Visual Studio Code 中的 $PSVersionTable 变量,则会返回 PowerShell 版本 7.4.1。但 $host 变量返回 Visual Studio Code 的版本而不是 PowerShell 引擎的版本。

[玩转系统] 如何检查您的 PowerShell 版本 [仅 1 个 Cmd]

使用注册表

检查 PowerShell 版本的最后一个选项是使用注册表。现在,这可能不是最方便的方法,但当您需要清点多台计算机时,此选项可能很有用。

注册表方法只有一个挑战,与旧版本相比,PowerShell 7 的版本号存储在不同的位置。

因此,要检查版本号,我们可以使用以下两个注册表路径:

# Get the older PowerShell versions
Get-ItemPropertyValue -Path HKLM:\SOFTWARE\Microsoft\PowerShell\PowerShellEngine -Name 'PowerShellVersion'

# Get the PowerShell 7 Version
Get-ItemPropertyValue -Path HKLM:\SOFTWARE\Microsoft\PowerShellCore\InstalledVersionsab5147-9a97-4452-8443-d9709f0516e1 -Name 'SemanticVersion'

从远程主机获取 PowerShell 版本

在远程计算机上运行脚本之前,有时您首先需要检查安装的版本。某些服务器可能仍然只安装了版本 2 或 3,这可能会限制您可以在脚本上使用的 cmdlet。

要从远程主机获取版本,我们将使用 invoke-command cmdlet。这允许我们在远程计算机上运行脚本块并返回结果以供使用:

Invoke-Command -Computername lazy-lab11 -Scriptblock {$PSVersionTable.PSVersion}

更新您的 PowerShell

PowerShell 是 Windows 中的内置工具,这意味着它随 Windows 更新而更新。在 Windows 10 和 Windows 11 中,默认情况下会获得 PowerShell 5.1。要更新到 PowerShell 7,您需要手动安装它。

在本文中阅读有关安装 PowerShell 7 和更新的更多信息。

总结

尽管 $host 变量更容易记住,但建议使用 $PSVersionTable 代替。这比主变量更可靠,特别是在脚本中或当您需要使用远程计算机时。

我希望这篇文章对您有用,如果您有任何疑问,请在下面发表评论。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯