こんにちは。チェシャ男です。(-皿-)
「PowerShell入門」連載記事の第2回「 PowerShell の要件確認とインストール」についてお話しします。
第1回の記事ではザックリと PowerShell の概要について説明しました。今回の記事では、概要の説明の中でも軽く触れた「 PowerShell バージョン」「.NET Framework」をメインにお話ししていこうと思います。
≡INDEX≡
PowerShell のバージョンを入門者向けに簡単整理
入門記事で PowerShell が何者なのか理解したとしても、インストールされていなければ実行することはできません。
では、どうやって準備するかというと…特にやることはありません!!
PowerShell は基本的に Windows に対して標準で搭載されています。参考までに、PowerShell のバージョンを簡単にまとめました。
バージョン | エディション |
1.0 | - |
2.0 | - |
3.0 | - |
4.0 | - |
5.0 | - |
5.1 | core |
5.1 | desktop |
ご覧のように、PowerShell 5.1からは「エディション」という考え方が生まれました。
従来と同じ一般のマシン用「 desktop 」エディションと、新しい Windows Server のインストール形態である "nano server" や" Windows IoT" 向けの「core」エディションがあります。
上の表を見てもらうと、最新の PowerShell はバージョン5.1であることがわかりますね。最新 OS の Windows10 や Windows Server 2016には「PowerShell 5.1」がインストールされています。
しかし、この「 PowerShell 5.1」ですが、古いバージョンの OS にはインストールされていません。
「新しいOS入れないと最新版は使えないのか!搾取だ!」
いいえ。安心してください。適切な
- .NET Framework
- WMF(Windows Management Framework)
をインストールすることで、最新のバージョンに無料でアップグレードすることができるんです!
早速、バージョンアップするためのインストール要件などについて、それぞれ説明していきます!
PowerShell と .NET Framework の対応関係
PowerShell を動作させるためには、各バージョンに対応した ".NET Framework" をインストールしておく必要があります。
では、この ".NET Framework" とはなんなんでしょうか。
「.NET Framework」とは…?
「.Net Framework」とは、
Microsoft 社が提供しているソフトウェア・アプリケーションを開発したり実行したりするための基盤環境の一つ
です。
基本的に Windows に同梱されていて OS インストール時に一緒にインストールされています。
".NET Framework" は CLI(Common Language Infrastructure) 、つまり日本語で「共通言語基盤」という仕様のもと作成されています。
「共通言語基盤って何ぞ?」となると思うので簡単に説明すると、
環境や機種、OS バージョンの違いの影響を受けずにアプリケーションを実行できる仕組みを提供するためのもの
なんです。
例えるなら「超スーパーエリート翻訳家」といったところでしょうか。
英語だろうと中国語だろうとドイツ語だろうと何でも「日本語に翻訳できる人」といったようなモノでしょうかね。
つまり ".NET Framework" をベースにしていれば、同じコマンドや同じ命令文を使うことができるということです。いい感じに内部で処理をして、違いを取り込んでくれます。
このことから、".NET Framework" を使用して作られている PowerShell も機種や OS バージョンなどの環境の違いに影響されず、使えてしまうということなんですね!
.NET Framework のバージョン
".NET Framework" はバージョンアップに伴い、どんどん機能が追加されていっています。
そのため、従来のコマンドプロンプト(cmd.exe)で実行できたことは、ほぼ
PowerShell (≒ .NET Framework)
で再現することができます。
しかし、".NET Framework" はバージョン互換がなかなか曲者なんですね~
.NET Frameworkの 各バージョンの種類と関係は大体こんな感じになっています。
※オープンソース向けの、.NET core もあり PowerShell の他 OS 対応化に関する話も足ますが、ここでは入門者向けに内容を簡略化するため省略しています。
上図のように、CLR (共通言語ランタイム)を基に大きく4つのくくりに分けられます。
CLR とは簡単に言うと
".NET Framework"を動かすための脳みそ的な部分
です。
イメージで言うと、Windows マシンの中にある .NET Framework のアプリケーション実行用のちっさなマシンのようなものです。
一応、".NET Framework"は上位互換ということなんですが…実際のところは、
上位互換は同じ CLR 内で保障されている状態に過ぎず、バージョン間によっては共存できたりできなかったり、内包関係にあったり
結構ややこしいんです。
左の「CLR1系~1.1系」はサポートが終わっているのであまり気にしなくていいと思います。
問題は「CLR2系」と「CLR4系」のバージョンなんです。「CLR2系」は主にWindows7まで、「CLR4系」は主にWindows8以降のOS向けに開発されています。
まずは「2系」についてです。
.NET Framework 2.0 ~ 3.5(SP1)などのバージョンがありますが、これらは内包関係にあります。つまり一番新しい 3.5(SP1)をインストールすれば2.0も3.0もインストールしたことになるんです。
次に「4系」です。
こちらは下位のバージョンと上位のバージョンが共存できず、新しいものを入れると置き換えられてしまいます。この手法を「インプレースアップグレード」といいます。
そして、この「CLR2系」と「CLR4系」の2つは、CLR のバージョンも違うことから共存することができてしまいます。
ややこしいですね。
PowerShell から話が逸れてきたので、ここから PowerShell との関係に話を戻します。
ここまで紹介した ".NET Framework" を使って PowerShell は動いています。そして PowerShell のバージョンと .NET Framework のバージョンには対応関係があるんです。
PowerShell に必要な .NET Framework のバージョン
PowerShellではバージョンによって必要とする".NET Framework"が変わってきます。以下の表を見てみてください。
PowerShell | .NET Framework |
1.0 | 2.0以上 |
2.0 | 2.0(GUI操作には3.5)以上 |
3.0 | 4.0以上 |
4.0 | 4.5以上 |
5.0 | 4.5以上 |
5.1 | 4.5.2以上 |
このように、上位の PowerShell を使うには基本的に上位の .NET Framework が必要です。良くわからない人は、ひとまず最新の .NET Framework をインストールしておけば最新の PowerShell が使えると思ってください。
表のとおり4.5.2以上の .NET Framework をインストールすれば、今あなたが使っているPCが Windows 7 でも PowerShell 5.1 を使うことができるようになるんですよ!
お使いの PC が最新版の PowerShell ではないならば、PowerShell のバージョンアップのために .NET Framework を早速インストールしてみましょう。
以下のリンクから .NET Framework 4.5.2 のインストーラをダウンロードすることができます。
⇒ Microsoft .NET Framework 4.5.2 (Offline Installer)
また、「とにかく最新が良い!」と思ったのであれば、こちらから .NET Framework 4.6.2をインストールください!
ただし、PowerShell のバージョンアップについて1つ注意点があります。
上位のバージョンの OS に依存する OS 固有の一部コマンドレットについては、PowerShell のバージョンを上げても使うことはできません。
その辺りのコマンドレットを使いたい場合は諦めて Windows 自体をアップグレードしましょう。
PowerShell は WMF に含まれている?
さて".NET Framework" の準備はできましたか?
次は、いよいよ最新版の PowerShell をインストールです!
…と、ここでまたも壁にぶち当たります。
PowerShell をインストールするには、WMF(Windows Management Framework) をインストールしなければなりません。
「Windows Management Framework」とは…?
WMF とは、
Windows システムの運用や管理を効率化させてくれるツール群
の事を指します。
つまり、Windows での開発や管理を手助けしてくれる道具が詰まった道具箱のようなものです。
PowerShell は、この道具箱の中に入っている1つの道具の事だったんです!
この WMF には、
- Windows PowerShell
- Windows PowerShell Desired State Configration (DSC)
- Windows PowerShell Integrated Script Enviroment (ISE)
- Windows Remote Management (WinRM)
- Windows PowerShell Web Service
- Software Inventory Logging (SIL)
- Server Manager CIM Provider
といった機能(道具)が含まれています。
WMF には PowerShell だけでなく、「サーバ管理を自動化」してくれるものや PowerShell の便利な「開発環境」を提供してくれるものなどが含まれているんです!
WMF にもいくつかのバージョンが存在しており、インストールする WMF のバージョンに対応した PowerShell が自動的にインストールされます。
WMF のバージョンと Windows OS の関係
WMF は OS インストール時にデフォルトで用意されているものと、後からインストールものに分けることができます。
こちらの表をご覧ください。
Windows OSバージョン | WMF 5.1 | WMF 5.0 | WMF 4.0 | WMF 3.0 | WMF 2.0 |
Windows Server 2016 | デフォルト | ||||
Windows 10 RS1 | デフォルト | ||||
Windows 10 | 導入可 | デフォルト | |||
Windows Server 2012 R2 | 導入可 | 導入可 | デフォルト | ||
Windows 8.1 | 導入可 | 導入可 | デフォルト | ||
Windows 2012 | 導入可 | 導入可 | 導入可 | デフォルト | |
Windows 8 | 導入可 | 導入可 | 導入可 | デフォルト | |
Windows Server 2008 R2 | 導入可 | 導入可 | 導入可 | 導入可 | デフォルト |
Windows 7 SP1 | 導入可 | 導入可 | 導入可 | 導入可 | デフォルト |
Windows Server 2008 SP2 | 導入可 | 導入可 | |||
Windows Vista | 導入可 | ||||
Windows Server 2003 | 導入可 | ||||
Windows XP | 導入可 |
このように、基本的にサポートが終了しているOSについては新しい WMF が使えないようになっています。
また、デフォルトのバージョンが低くても「導入可」であれば上位のバージョンに置き換えることができます。
バージョンアップしたい場合は、インストーラを以下からダウンロードして適用すると良いですよ!
Windows 7(64bit)でPowerShell 5.1にアップデートしたい場合
⇒ Windows7向けWMF 5.1 パッケージのダウンロード
Windows 8.1(64bit)でPowerShell 5.1にアップデートしたい場合
⇒ Windows7向けWMF 5.1 パッケージのダウンロード
その他の場合(こちら↓のページから詳細をご確認ください)
インストール可能なバージョンまとめ
今回の記事で解説した、「.Net Framework」と「WMF」の各バージョン対応から、各 OS にインストール可能な PowerShell バージョンはこのようになります。
Windows OSバージョン | デフォルト | 導入可能 |
Windows Server 2016 | 5.1 | - |
Windows 10 RS1 | 5.1 | - |
Windows 10 | 5.0 | 5.1 |
Windows Server 2012 R2 | 4.0 | 5.0/5.1 |
Windows 8.1 | 4.0 | 5.0/5.1 |
Windows 2012 | 3.0 | 4.0/5.0/5.1 |
Windows 8 | 3.0 | 4.0/5.0/5.1 |
WindowsServer 2008R2 | 2.0 | 3.0/4.0/5.0/5.1 |
Windows 7 SP1 | 2.0 | 3.0/4.0/5.0/5.1 |
Windows Server 2008 SP2 | 1.0 | 2.0/3.0 |
この記事を読んでいるということは、これから PowerShell の学習を始めようとしているところだと思います。
Powershell をうまく使えるようになりたいならば、できるだけ最新の PowerShell 5.1 をゲットして、時代の流れについていきましょう!
次回の記事では、いよいよ Powershell を起動していきます!お楽しみに!
チェシャ男おススメ!PowerShell 入門者の必携本 (-皿-)
本記事をお読みくださったあなたに、チェシャ男が実際にPowerShellの勉強に使っているイチ押しの書籍を紹介します!
こちらの書籍ではリファレンス情報だけではなく、PowerShellの基礎知識や基本文法など約700ページにわたって解説しています!
初心者の場合、ネットでふらふらと情報を漁るよりは効率よく勉強ができると思いますよ!
本サイトでのPowershell 学習のお供に是非ご活用ください(*´皿`*)
疑問点等ございましたらお気軽にコメントください!