Windows Server
 Computer >> コンピューター >  >> システム >> Windows Server

インストールされているPowerShellのバージョンを確認する方法は?

この記事では、PowerShellのバージョンと、Windows PowerShellの違いについて説明します。 およびPowerShell Core 、およびローカルまたはリモートコンピューターにインストールされているPowerShellのバージョンを確認する方法。

WindowsPowerShellおよびPowerShellCoreの履歴とバージョン

PowerShellは、Windows7SP1およびWindowsServer2008R2SP1以降のすべてのWindowsバージョンにデフォルトでインストールされます。次の表に、すべてのPowerShellバージョンのリストを示します。

PSバージョン
PowerShell 1.0 Windows Server2003SP1およびWindowsXPに手動でインストールできます
PowerShell 2.0 Windows Server2008R2およびWindows7
PowerShell 3.0 Windows8およびWindowsServer2012
PowerShell 4.0 Windows8.1およびWindowsServer2012 R2
PowerShell 5.0 Windows 10 RTMにプレインストールされ、WindowsUpdateを介して5.1に自動的に更新されます
PowerShell 5.1 Windows 10(ビルド1709以降)およびWindowsServer2016に組み込まれています
PowerShellCore6.0および6.1 これは、サポートされているすべてのWindowsバージョンとMacOS、CentOS、RHEL、Debian、Ubuntu、openSUSEにインストールできる次のクロスプラットフォームPowerShellバージョン(.NET Coreに基づく)です
PowerShell Core 7.0 これは2020年3月にリリースされた最新のPowerShellバージョンです(.NETCore2.xの代わりに.NETCore3.1が使用されています)
以前のWindowsバージョンに新しいPowerShellバージョンを手動でインストールできます。これを行うには、適切なバージョンの Windows Management Frameworkをダウンロードしてインストールします。 (PowerShellはその一部です)。

過去2年間、Microsoftは従来のWindows PowerShellの開発を一時停止し(バグ修正とセキュリティ更新プログラムのみがリリースされています)、オープンソースのクロスプラットフォーム PowerShell Coreに重点を置いていることに注意してください。 。

WindowsPowerShellとPowerShellCoreの違いは何ですか?

  1. Windows PowerShell .NET Frameworkに基づいています (たとえば、PowerShell5には.NETFramework v4.5が必要です。インストールされていることを確認してください)。 PowerShellコア .Net Coreに基づいています;
  2. Windows PowerShellはWindowsオペレーティングシステムでのみ機能しますが、 PowerShell Core クロスプラットフォームです Linuxでも動作します;
  3. PowerShellCoreはWindowsPowerShellに完全には準拠していませんが、Microsoftは以前のPSコマンドレットおよびスクリプトとの下位互換性の向上に取り組んでいます。 (PowerShell Coreに移行する前に、古いPS1スクリプトをテストすることをお勧めします)。 PowerShell Core 7は、WindowsPowerShellとの最高の互換性を提供します。
  4. PowerShellISEエディターを使用してPowerShellCoreスクリプトを編集することはできません(ただし、Visual Studio Codeは使用できます)。
  5. Windows PowerShellは開発されていないため、PowerShellCoreへの移行を開始することをお勧めします。
コンソールからPowerShellバージョンを取得する方法

コンピューターにインストールされているPowerShellのバージョンを確認する最も簡単な方法は、次のコマンドを使用することです。

host

Versionプロパティ値を確認してください。

次のスクリーンショットは、Windows Server 2016のように、PowerShell5.1がデフォルトでインストールされているWindows10で作成されたものです。

インストールされているPowerShellのバージョンを確認する方法は?

または

$PSVersionTable

PowerShellのバージョン値のみを取得できます:

$PSVersionTable.PSVersion.major

(この例では、クリーンなWindows Server 2008R2でPSVersion2.0を入手しました)

インストールされているPowerShellのバージョンを確認する方法は?

$ PSVersionTableコマンドは、さまざまなオペレーティングシステムのPowerShellCoreで正しく機能します。

レジストリから、インストールされているPowerShellのバージョンを確認することもできます。これを行うには、レジストリキーHKLM\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngineでPowerShellVersionパラメーターの値を取得します。 Get-ItemPropertyコマンドレットの使用:

(Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine -Name 'PowerShellVersion').PowerShellVersion

インストールされているPowerShellのバージョンを確認する方法は?

上記の方法は、Windows Server 2012 /Windows8以降で機能します。

Windows Server 2008 R2 / Windows 7では、レジストリパラメータの値を別のregキーで取得できます。

(Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine -Name 'PowerShellVersion').PowerShellVersion

インストールされているPowerShellのバージョンを確認する方法は?

インストールされているPowerShellCoreバージョンを取得するには、次のコマンドを使用します。

(Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\PowerShellCore\InstalledVersions* -Name 'SemanticVersion').SemanticVersion

リモートコンピューター上のPowerShellのバージョンを確認する

リモートホストでPowerShellのバージョンを確認するには、 $ PSVersionTableの値を使用します 環境変数またはレジストリから直接情報を取得します。他のメソッドは誤ったデータを返す可能性があります。

Invoke-Command を使用したPowerShellRemotingを介して、PowerShellバージョンをリモートコンピューターにインストールできます。 コマンドレット:

Invoke-Command -ComputerName mun-dc01 -ScriptBlock {$PSVersionTable.PSVersion} -Credential $cred
インストールされているPowerShellのバージョンを確認する方法は?

Major Minor Build Revision PSComputerName
----- ----- ----- -------- --------------
5 1 14393 3383 mun-dc01

次のスクリプトを使用して、複数のコンピューターにインストールされているPowerShellバージョンを取得できます(リモートコンピューターのリストはプレーンテキストファイルとして指定する必要があります):

Invoke-Command -ComputerName (Get-Content C:\PS\host_list.txt) -
ScriptBlock{$PSVersionTable.PSVersion} | Select PSComputerName, @{N="PS Version";E={$_.Major}}
を選択します

または、Get-ADComputerを介してドメインコンピューターのリストを取得し、それらのPowerShellバージョンをリモートで確認できます。

$adcomputer=(Get-ADComputer -Filter 'operatingsystem -like "*Windows server*" -and enabled -eq "true"' -SearchBase ‘OU=servers,OU=Munich,dc=woshub,dc=com’ ).Name
Invoke-Command-ComputerName $adcomputer -Scriptblock{$PSVersionTable.psversion} -ErrorAction SilentlyContinue

PowerShellスクリプトが特定のPSバージョンの機能を使用している場合は、スクリプトを強制的に別のPowerShellバージョンに切り替えることができます。たとえば、PowerShell v3モードでコンソールを実行するには、次のコマンドを実行します(.Net Framework 3.5がインストールされている必要があります):

PowerShell.exe -version 3

特定のPSバージョンのコマンドレットまたは機能を使用するスクリプトまたはコマンドを実行する場合は、PowerShellのバージョンを知ることが重要な場合があります。スクリプトでインストールされているPowerShellのバージョンを検出し、それに基づいてコマンドレットを使用する場合は、次のPSスクリプトを実行できます。

$ps_version = $PSVersionTable.PSVersion.major
if ( $ps_version -eq "2” )
{
write "You are using Powershell 2.0"
}
elseif ( $ps_version -eq "5" )
{
write " You are using Powershell 5"
}

次の記事では、WindowsでPowerShellのバージョンを更新する方法を見ていきます。


  1. Windows 10 で PowerShell のバージョンを確認する方法

    多くのユーザーは、Exchange、Lync、および SQL ベースのサーバーも制御できることに加えて、Windows Server でより強力なアクションを実行できるため、コマンド プロンプトの代わりに PowerShell を使用することを好みます。 Windows 10 には既定で PowerShell 5.0 が付属していますが、最新の Windows Update コンポーネントをインストールすると、上位バージョンの Windows PowerShell 5.1 が自動的にインストールされます。このため、Windows 10 PC で PowerShell のバージョンを確認する方法

  2. Windows 11 で PowerShell のバージョンをすばやく確認する方法

    PowerShell は、Windows 10 と Windows 11 の強力で便利なツールですが、PowerShell を更新する必要がある場合はどうすればよいでしょうか? Windows で使用している PowerShell のバージョンを知っていますか?このガイドに従って、使用している Windows 11 の PowerShell のバージョンを確認する方法を確認してください winget とも呼ばれる Windows パッケージ マネージャー は、コマンド プロンプトまたは PowerShell からアプリをインストール、管理、構成、さらにはアンインストールするために使用できるコ