Adam the Automator (日本語)

PowerShellには、同じことを行うための無数の方法があります(またはそれに近い)。 このブログにおけるあらゆる方法でチェックユー版をかけている地域およびリモートコンピュータ 私たちは悪い方法と私の推奨される方法をカバーします。

PowerShell初心者からPowerShellの達人に行きたい場合は、PowerShellツールの構築に関するこの無料のミニコースをお勧めします。 これは、アダムAutomatorからの完全な説明と指導とステップバイステップのチュートリアルです!,

Powershellのバージョンを確認するさまざまな方法を示すwebサイトがあります。 あなたのための包括的リストの全てます。 私はそれを変更することを決めた。

これらの方法はすべて、Windows PowerShellとPowerShell Coreの両方で機能する必要があります。 これらのメソッドは、Windows PowerShellバージョン1.0からPowerShell7まででも動作する必要があります。,

実行しているPowerShellのバージョンを見つける方法は次のとおりです。

  1. (Get-Host).Versionプロパティ
  2. $host.Versionプロパティ
  3. レジストリ(Windows PowerShellのみ)
  4. $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.VersionPowershellのバージョンを確認する別の方法です。 $host変数は、Get-Hostと同じ出力を返す自動変数です。,

参照$host.Version

このメソッドについて特別なことはありません。 これは単に実行するのと同じですGet-Host

$ホスト。リモートコンピュータ上のバージョン

PowerShellリモート処理を介して同じ動作が表示されます$host.VersionGet-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 output

リモートコンピュータ上の$PSVersionTable

$PSVersionTable自動変数を使用すると、ローカルではそれは遠隔にあります。 Scriptblockで$PSVersionTable.PSVersionをラップし、リモートコンピュータでそのコードを実行すると、同じバージョンが返されます。

概要

このブログ記事では、PowerShellのバージョンをローカルとリモートの両方でチェックするすべての方法を学びました。, 私は最初のいくつかの方法があなたにバージョンをチェックしない方法についてのアイデアを与え

常に$PSVersionTable.PSVersionを使用することをお勧めします。 すべてのその他の方法ではユングエンジンが必ずしも反映して、エンジンをバージョン。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です