Windows PowerShellは以前のバージョンとの後方互換性を持つよう設計されています。 Windows PowerShell 2.0向けに書かれたコマンドレット、プロバイダ、スナップイン、モジュール、スクリプトは、新しいバージョンのWindows PowerShellでは変更されずに動作します。 しかし、Microsoft .NET Framework 4はランタイムのアクティベーションポリシーを変更しました。 Windows PowerShell 2.0向けに書かれ、共通言語ランタイム(CLR) 2.0でコンパイルされたWindows PowerShellホストプログラムは、CLR 4.0(またはそれ以上)でコンパイルされた新しいWindows PowerShellバージョンでは修正なしでは動作しません。
Windows PowerShell 2.0エンジンは、既存のスクリプトやホストプログラムがWindows PowerShell 5.1と互換性がないため実行できない場合のみ使用することを意図しています。 例としては、ExchangeやSQL Serverの古いバージョンのモジュールがあります。 このようなケースは稀であると予想されています。
Windows PowerShell 2.0エンジンを必要とする多くのプログラムは自動的に起動します。 これらの説明書は、まれに手動でエンジンを始動する必要がある場合に備えて含まれています。
退役性とセキュリティ上の懸念
Windows PowerShell 2.0は2017年8月に廃止されました。 詳細はPowerShellブログの 告知 をご覧ください。
Windows PowerShell 2.0はバージョン3、4、5で追加された多くの強化やセキュリティ機能が欠けています。 可能な限り、ユーザーには使用しないことを強く強くお勧めします。 詳細については、「 シェルとスクリプト言語のセキュリティの比較 」および「 PowerShell ♥ the Blue Team」をご覧ください。
必要なプログラムのインストールと有効化
Windows PowerShell 2.0エンジンを開始する前に、Windows PowerShell 2.0エンジンとMicrosoft .NET Framework 3.5をサービスパック1で有効にしてください。 手順については 「Windows PowerShellのインストール」をご覧ください。
Windows Management Framework 3.0以上のシステムには、必要なすべてのコンポーネントが搭載されています。 それ以上の設定は不要です。 Windows管理フレームワークのインストールに関する情報は、「 WMFのインストールおよび構成」をご覧ください。
Windows PowerShell 2.0エンジンの起動方法
WindowsPowerShellを起動すると、デフォルトで最新バージョンが起動します。 Windows PowerShell 2.0エンジンでWindowsPowerShellを開始するには、 PowerShell.exeのVersionパラメータを使用します。 このコマンドは、Windows PowerShellや Cmd.exeを含むどのコマンドプロンプトでも実行できます。
PowerShell.exe -Version 2
Windows PowerShell 2.0エンジンでリモートセッションを開始する方法
リモートセッションでWindows PowerShell 2.0エンジンを実行するには、Windows PowerShell 2.0エンジンを読み込むリモートコンピュータ上でセッション構成(エンドポイントとも 呼ばれる)を作成します。 セッション構成はリモートコンピュータに保存され、認可されたユーザーはWindows PowerShell 2.0エンジンを使用するセッションを作成できます。
これは通常、システム管理者が行う高度な作業です。
以下の手順は、Register-PSSessionConfiguration コマンドレットのPSVersionパラメータを用いて、Windows PowerShell 2.0エンジンを使用するセッション構成を作成します。 また、New-PSSessionConfigurationFile コマンドレットのPowerShellVersionパラメータを使って、Windows PowerShell 2.0エンジンをロードするセッションの構成ファイルを作成し、Set-PSSessionConfigurationパラメータのPSVersionパラメータを使ってセッション構成をWindows PowerShell 2.0エンジンに切り替えることもできます。
セッション構成ファイルの詳細については、about_Session_Configuration_Filesを参照してください。 セッション構成、セットアップやセキュリティに関する情報については、 about_Session_Configurationsを参照してください。
リモートWindows PowerShell 2.0セッションを開始するには
Windows PowerShell 2.0エンジンを必要とするセッション構成を作成するには、
Register-PSSessionConfigurationコマンドレットのPSVersionパラメータを2.0値で使用してください。 このコマンドは「サーバー側」または接続の受信側のコンピュータで実行してください。以下のサンプルコマンドは、Server01コンピュータ上でPS2セッション構成を作成します。 このコマンドを実行するには、Windows PowerShellを「 管理者として実行 」オプションで起動します。
Register-PSSessionConfiguration -Name PS2 -PSVersion 2.0Server01コンピュータ上でPS2セッション構成を使用するセッションを作成するには、リモートセッションを作成するコマンドレットの ConfigurationName パラメータ(例えば'New-PSSession cmdlet)を使用します。
セッション構成を使用するセッションが開始されると、Windows PowerShell 2.0エンジンが自動的にそのセッションにロードされます。
以下のコマンドは、PS2セッション構成を使用するServer01コンピュータ上でセッションを開始します。 このコマンドはセッションを
$s変数に保存します。$s = New-PSSession -ComputerName Server01 -ConfigurationName PS2
Windows PowerShell 2.0エンジンでバックグラウンドジョブを始める方法
Windows PowerShell 2.0エンジンでバックグラウンドジョブを開始するには、Start-JobコマンドレットのPSVersionパラメータを使用します。
以下のコマンドはWindows PowerShell 2.0エンジンのバックグラウンドジョブを開始します
Start-Job {Get-Process} -PSVersion 2.0
バックグラウンドジョブの詳細については、 about_Jobsをご覧ください。