新しい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のバージョンが異なると、リモートコンピューターに対して実行されるコマンドにどのような影響がありますか?
- ローカルシステムがより高いバージョンを実行している場合、新しいコマンド/機能をリモートシステムに対して使用できますか?
- リモートシステムがより高いバージョンを実行している場合、ローカルシステムがそれらをサポートしていないときに、新しいコマンド/機能を活用する簡単な(そしてスクリプト可能な)方法はありますか?
- 予想される互換性の問題を知るために心に留めておくことができる一般的なルールはありますか、またはこれは大きく異なり、使用するコマンドまたは機能ごとに個別に調査/テストする必要がありますか?
-Computer
でしょうか。たとえば、ローカルコンソールのパラメーターを使用する場合はどうでしょうか。