Windows Server に PowerShell 1.0 が登場したのが、Windows Server 2008 でした。
デフォルトで搭載されてはいましたが、サーバーマネージャーの「機能の追加」でインストールする必要がありました。
(Windows Vista の場合は、KB928439 をインストールします。)
その後、Windows Server 2008 R2 や Windows 7 では、バージョンアップした PowerShell 2.0 が、最初から使えるようになりました。
そして Windows Server 2012 や Windows 8 では PowerShell 3.0 になりました。
この PowerShell 3.0 を、Windows Server 2008 にインストールできるということを今日初めて知りました。
(Windows Server 2008 R2 と同じ PowerShell 2.0 をインストールできることは知っていたのですが。)
あらかじめ Service Pack 2 を適用しておく必要があり、.NET Framework など複数のコンポーネントをインストールする必要がありますが、Installing Windows PowerShell に手順がまとめられています。
さっそくインストールしてみたのですが、決して Windows Server 2012 と全く同じように使えるわけではないようです。
コマンドレットやモジュールの数にだいぶ差があるようなので、両 OS で比較してみました。
※ OS インストール後、「役割」を何も追加していない素の状態です。
まず powershell.exe を起動。
起動した時点で読み込まれているモジュールを比較するため、" Get-Module " を実行。
Windows Server 2008 ---> Microsoft.PowerShell.Management
Windows Server 2012 ----> Microsoft.PowerShell.Management
どちらも一つだけであり、差はありません。
(コマンドプロンプト上で powershell.exe を実行している状態では、どちらもゼロです。)
次に、get-command で利用可能なコマンドレット数を比較します。
実行結果の行数をカウントするために、" (Get-Command).length " を実行。
Windows Server 2008 ---> 349
Windows Server 2012 ---> 1160
なんと、三倍以上の差があります。
同様にして、利用可能なモジュール数を比較します。
" (Get-Module -listAvailable).length " を実行。
Windows Server 2008 ---> 13
Windows Server 2012 ---> 55
こちらは四倍以上の差です。
最後に、利用可能なモジュールを全て読み込んだ状態でコマンドレット数を比較します。
" Get-Module -listAvailable | import-module " を実行してから " (Get-Command).length " を実行。
Windows Server 2008 ---> 349
Windows Server 2012 ---> 1170
読み込む前と大差ありません。
というわけで、Windows Server 2012 と同等の処理は期待できません。