バージョンの違いは、リモートコンピューター上のPowerShellコマンドにどのように影響しますか?


2

新しいPowerShellバージョンには、明らかに新しい機能と新しいコマンドレットが付属します。これは、異なるバージョンがインストールされたシステム間でローカルに実行される可能性のあるスクリプトまたはPowerShellウォークスルーを作成する際に考慮する必要がある重要なことです。

簡単な例は次のようになりますGet-FileHash。このコマンドはPowerShell 4.0の新機能であり、以前のバージョンを実行しているシステムでは使用できません。特に、Windows 7 SP0(またはServer 2008 R2 SP0)以下を実行しているシステムでは使用できません。PowerShell4.0はこれらのシステムではまったくサポートされていないためです。

ただし、特定のPowerShellバージョンをサポートするという単純な問題は別として、インストールされているオペレーティングシステムのバージョンについてさらに検討する必要があります。たとえば、Test-NetConnection以前のオペレーティングシステムを実行しているシステムにインストールされているPowerShellのバージョンに関係なく、Windows 8.1(またはServer 2012 R2)でのみ(現在)利用可能です。

これは、ローカルシステムでPowerShellコマンドを実行するスクリプトまたはガイドにとって非常に簡単です。ローカルシステムにオペレーティングシステムバージョンAとPowerShellバージョンBがある場合、OS AでサポートされているすべてのコマンドをPSで使用できますB.ただし、異なるオペレーティングシステムまたはPowerShellバージョンを実行している可能性のあるリモートコンピューターをスクリプトがアドレス指定する場合、それほど単純または明確に見えません。

では、PowerShellのバージョンが異なると、リモートコンピューターに対して実行されるコマンドにどのような影響がありますか?

  • ローカルシステムがより高いバージョンを実行している場合、新しいコマンド/機能をリモートシステムに対して使用できますか?
  • リモートシステムがより高いバージョンを実行している場合、ローカルシステムがそれらをサポートしていないときに、新しいコマンド/機能を活用する簡単な(そしてスクリプト可能な)方法はありますか?
  • 予想される互換性の問題を知るために心に留めておくことができる一般的なルールはありますか、またはこれは大きく異なり、使用するコマンドまたは機能ごとに個別に調査/テストする必要がありますか?

回答:


0

コマンドレットは、現在PowerShellを実行しているシステム上にある場合にのみ使用できます。これをテストしました。

たとえば、Windows Server 2012 R2を実行しているサーバーにいて、Windows Server 2008 R2を実行しているシステムにリモート接続している場合、2012 R2でのみ使用可能なコマンドレットを実行することはできません。タブ補完は機能せず、コマンドレットを実行しようとするとエラーが発生します(使用できないため)。

2012 R2のリモート2008からR2の場合は、します 2012 R2で利用可能なコマンドレットを使用することができます。タブ補完も機能します。


OK、それは実際のPSリモートセッションに十分な意味をなします。コマンドをリモートで使用する場合はどう-Computerでしょうか。たとえば、ローカルコンソールのパラメーターを使用する場合はどうでしょうか。
イッツィ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.