如何在本地和遠端系統中檢查已安裝的 PowerShell 版本?


要檢查系統中安裝的 PowerShell 版本,您可以使用 **$PSVersionTable** 或 **$host** 命令。

  • 檢查遠端伺服器上是否存在 **$host** 命令。

在系統中開啟 PowerShell 控制檯並執行命令 **$PSVersionTable**。

$PSVersionTable

輸出

PS C:\WINDOWS\system32> $PSVersionTable
Name                             Value
----                             -----
PSVersion                        5.1.18362.628
PSEdition                        Desktop
PSCompatibleVersions             {1.0, 2.0, 3.0, 4.0...}
BuildVersion                     10.0.18362.628
CLRVersion                       4.0.30319.42000
WSManStackVersion                3.0
PSRemotingProtocolVersion        2.3
SerializationVersion             1.1.0.1

因此,這裡我們有 **$PSVersionTable** 的輸出。您可以看到輸出屬性 **$PSVersion**,它指示 PowerShell 的版本資訊。

$PSVersionTable.PSVersion

輸出

Major    Minor    Build    Revision
-----    -----    -----    --------
5       1         18362    628

在 Major 屬性中,它表示 PowerShell 版本為 **5**,Build 為 **18362**。

同樣,您可以在 PowerShell 中使用 **$Host** 命令獲取上述輸出。

PS C:\WINDOWS\system32> $Host
Name :                       ConsoleHost
Version                      : 5.1.18362.628
InstanceId                   : f6d2bf19-db26-403b-9749-afede37ea56f
UI                           : System.Management.Automation.Internal.Host.InternalHostUserInterface CurrentCulture               :en-IN
CurrentUICulture             : en-US
PrivateData                  : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy
DebuggerEnabled              : True
IsRunspacePushed             : False
Runspace                     : System.Management.Automation.Runspaces.LocalRunspace

您可以從 **version** 屬性獲取 PowerShell 版本。

$Host.Version

輸出

PS C:\WINDOWS\system32> $Host.Version
Major    Minor    Build    Revision
 -----   -----    -----    --------
 5       1        18362    628

要在遠端計算機上獲取輸出,您需要使用 Invoke-Command 或 PSRemote 會話命令,因為 **$PSverionTable** 和 **$Host** 不支援 − **ComputerName** 引數。

Invoke-Command -ComputerName Test-PC -ScriptBlock{$PSVersionTable.PSVersion}

如果您有多臺計算機,並且需要主機名和針對主機名的 PS 版本,那麼您可以使用管道或 PSCustomObject 命令。

示例

Invoke-Command -ComputerName Test-PC,DC1 -ScriptBlock{$PSVersionTable.PSVersion} | Select PSComputerName, @{N="PS Version";E={$_.Major}}

如果您有一系列伺服器,則可以將所有伺服器新增到文字檔案中並執行上述命令。

例如,我們在 D:\Temp\Servers.txt 中儲存了伺服器列表,我們需要獲取其上的 PS 版本。

Invoke-Command -ComputerName (Get-Content D:\Temp\Servers.txt) -
ScriptBlock{$PSVersionTable.PSVersion} | Select PSComputerName, @{N="PS Version";E={$_.Major}}

更新於: 2020-04-07

2K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.