PowerShellには、同じことを行うための無数の方法があります(またはそれに近い)。 このブログにおけるあらゆる方法でチェックユー版をかけている地域およびリモートコンピュータ 私たちは悪い方法と私の推奨される方法をカバーします。
PowerShell初心者からPowerShellの達人に行きたい場合は、PowerShellツールの構築に関するこの無料のミニコースをお勧めします。 これは、アダムAutomatorからの完全な説明と指導とステップバイステップのチュートリアルです!,
Powershellのバージョンを確認するさまざまな方法を示すwebサイトがあります。 あなたのための包括的リストの全てます。 私はそれを変更することを決めた。
これらの方法はすべて、Windows PowerShellとPowerShell Coreの両方で機能する必要があります。 これらのメソッドは、Windows PowerShellバージョン1.0からPowerShell7まででも動作する必要があります。,
実行しているPowerShellのバージョンを見つける方法は次のとおりです。
(Get-Host).Version
プロパティ$host.Version
プロパティ- レジストリ(Windows PowerShellのみ)
$PSVersionTable.PSVersion
プロパティ
プロパティ
プロパティ
プロパティ
プロパティ
プロパティ
プロパティ
プロパティ
プロパティ
powershellのバージョンを見つけるためのすべての方法を、少なくとも推奨される方法から最も推奨される方法まで分解してみましょう。
目次
Get-Host
PowerShellには、ホストと呼ばれる概念があります。 ホストは、PowerShellエンジンをホストしているプログラムです。, PowerShellエンジン自体ではありません。PowerShellコンソールまたは統合端末を備えたコードエディターは、PowerShellホストです。
ホストは、PowerShell自体から完全に独立したバージョンを持つことができます。 これは多くの新規参入者に欺くことができます。 理由をお見せしましょう
(Get-Host).Version
を実行すると、PowerShellエンジンのバージョンのようなバージョン番号が返されることがわかります。 ルックスは欺くことができます。
以下では、Windows PowerShell5.1でGet-Host
を実行しましたが、5.1.17134.858で戻ってくることがわかります。, これは正当なバージョンのようです。
ただし、統合端末でGet-Host
を実行すると、バージョンが同じではないことがあります。 通常、ホストは同じバージョンのエンジンを表しますが、必ずしもそれを行う必要はありません。
リモートコンピューターでGet-Host経由でPowershellのバージョンを確認します
Get-Host
ローカルコンピューターで実行すると同じバージョンを返すようですが、リモートコンピューターでは決して返されません。,
たとえば、実行してみましょうGet-Host
リモートWindows Server2016サーバー上でInvoke-Command
そして何が起こるかを見てください。
前回チェックしたとき、PowerShell v1をwindows Server2016で実行することはできません。
Get-Host
に依存することは、すべての周りの悪い考えです。
Powershellのバージョン$hostを確認します。バージョンコマンド
参照$host.Version
Powershellのバージョンを確認する別の方法です。 $host
変数は、Get-Host
と同じ出力を返す自動変数です。,
このメソッドについて特別なことはありません。 これは単に実行するのと同じですGet-Host
。
$ホスト。リモートコンピュータ上のバージョン
PowerShellリモート処理を介して同じ動作が表示されます$host.Version
Get-Host
を実行するのと同じ
危険、ウィル-ロビンソン!
Registry
PowerShell自体を開きたくない場合は、レジストリを確認することもできます。, PowerShellのバージョンは、レジストリキーパスHKLM:\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine
の値の下に隠れています。 このレジストリキーには、PowerShellVersion
という値があり、Get-ItemProperty
を使用して参照できます。
このバージョンは似ていますが、他のオプションのようにリビジョンが含まれていないことがわかります。
他のツールを使用する
レジストリを使用すると、バージョンを見つけるためにPowerShellをまったく使用する必要がなくなります。 コマ,
リモートコンピューター上のレジストリ
レジストリは静的であり、値はローカルまたはリモートで変更されません。 ローカルに表示されるものは、リモートで表示されるものと同じになると確信できます。
同じバージョンをローカルとリモートで表示するのが良いです。 しかし、私は$PSVersionTable
自動変数を使用してあなたを表示するより良い方法を持っています。
$PSVersionTable経由でPowershellのバージョンを確認します。PSVersionコマンド
最後と最後のメソッドは、PSVersion
プロパティを参照しています$PSVersionTable
自動変数。, このメソッドは常にPowerShellエンジンを表します。
$PSVersionTable
自動変数は、PowerShell enginのバージョンに関する情報を返す読み取り専用ハッシュテーブルです。 この自動変数はバージョンだけでなく、PSEdition
も返します。 このプロパティは、実行中のPowerShellのエディションに関する詳細な情報を提供するCoreまたはDesktopのいずれかです。,
リモートコンピュータ上の$PSVersionTable
$PSVersionTable
自動変数を使用すると、ローカルではそれは遠隔にあります。 Scriptblockで$PSVersionTable.PSVersion
をラップし、リモートコンピュータでそのコードを実行すると、同じバージョンが返されます。
概要
このブログ記事では、PowerShellのバージョンをローカルとリモートの両方でチェックするすべての方法を学びました。, 私は最初のいくつかの方法があなたにバージョンをチェックしない方法についてのアイデアを与え
常に$PSVersionTable.PSVersion
を使用することをお勧めします。 すべてのその他の方法ではユングエンジンが必ずしも反映して、エンジンをバージョン。