そもそも PowerShell とは
米マイクロソフト社は、MS-DOSの時代から、今日の Windows に至るまで、コマンドラインツールを提供し続けてきました。
このコマンドラインツールとは、一般的には「シェル」と呼ばれます。
OS は、中核をなすカーネルと呼ばれるソフトウェアがあります。カーネルだけでは OS は成り立たたないため、さまざまなソフトウェアとの組み合わせで成り立っています。カーネルがさまざまなソフトウェアを管理していますので、コンピュータに命令するためには、カーネルとの会話が必要となります。しかし、人とカーネルは直接会話をすることができないため、仲介役としてシェルが必要となります(下図参照)。
Windows には、コマンドプロンプトというシェル(コマンドラインツールと呼ばれています)と、Windows PowerShell が標準で搭載されています。
コマンドプロンプトと Windows PowerShell の違いについて
コマンドプロンプトは Windows が登場する以前からあり、ping コマンド(ネットワークの応答確認)やディレクトリの作成といったコマンドを実行することができます。また、バッチファイルという簡単なプログラムも実行することができるようになっています。コマンドプロンプトは、命令(コマンド)を実行すると、結果として文字や数値を返してきます。
一方 PowerShell は、コマンドプロンプトでできることは全てできます。また、レジストリの操作やWMIへのアクセスといったことも可能ですし、ActiveDirectory の操作などもすることができますので、サーバー管理に使用することができます。
また、PowerShell で実行したコマンドが返す結果は、文字や数値ではなく、オブジェクトで返すという点で、コマンドプロンプトとは大きく異なります。
例えば、ある日付を取得したいとしましょう。コマンドプロンプトの場合は「2019/11/22」のような値が返されますが、Windows PowerShell の場合は、「年」や「月」「日」といった日付に関係するさまざまな結果が詰まった箱(オブジェクト)が返されます。あとは、この「箱」から必要な情報のみを取得して活用します。Windows PowerShell は結果をオブジェクトで返すということを覚えておきましょう。
PowerShell Core とは
続いて PowerShell Core とは何かについて説明をします。
PowerShell 5.0 までは、製品名に「Windows」と付いた「Windows PowerShell」というものであり、.NET Frameworkをベースとした Windows 環境でしか動作しないシェルでした。
しかし、2016年8月に、PowerShell 5.1 は、これまで同様 .NET Framework をベースとしたものと、新しく .NET Core をベースとしたものの2つの製品が登場します(Windows 10 に標準搭載されている PowerShell は .NET Framework をベースとしたものです)。
.NET Core(*1) は、クロスプラットフォームを対象としています。ことから、Windows 版、Mac OS 版、 Linux 系 OS 版 の PowerShell Core があります。
*1: .NET Core について詳しくは「.NET Framework / .NET Standard / .NET Core とは何か?」を参照ください。
Windows への PowerShell Core のインストール
PowerShell Core は Git-Hub の https://github.com/PowerShell/PowerShell/releases よりダウンロードすることができます。
製品名に「Preview」と付いているものは、正式リリース版ではありません。将来リリースされる予定のバージョンです。ダウンロードをしてインストールすることはできますが、自身の責任のもとで使用をしてください。
正式リリース版は名称が「v x.x.x Release of PowerShell Core」となっています。2019/11/22 時点での最新版は「v6.2.3 Release of PowerShell Core」です。
https://github.com/PowerShell/PowerShell/releases にアクセスすると該当のバージョンの箇所に、以下のようにリスト表示されています。
使用している Windows OS のバージョンに合うものをクリックしてダウンロードをし、実行してください。ファイル名に「win」とついているものが Windows 版です。
ここでは「PowerShell-6.2.3-win-x64.msi」をダウンロードしたと仮定して説明をします。
実行すると以下のようなダイアログが表示されますので[Next] ボタンをクリックします。
インストール先を選択するダイアログが表示されます。必要に応じて変更をしたら [Next] ボタンをクリックします。
次に PowerShell をカスタマイズするためのダイアログが表示されます。それぞれのチェックボックスの意味は以下の通りです。必要に応じてチェックをしてください。
- Add PowerShell to Path Environment Variable
環境変数に PowerShell を追加する - Register Windows Event Logging Manifest
Windows イベントログマニフェストに登録する - Enable PowerShell remoting
PowerShell リモーティングを有効にする - Add ‘Open here’ context menus Explorer
エクスプローラのコンテキストメニューに「Open here(ここで開く)」を追加する
[Install] ボタンをクリックします。
以下のようにアカウント制御が表示される場合は [はい] をクリックします。
インストールが始まります。
しばらくすると、インストール完了のダイアログが表示されますので [Finish]ボタンをクリックします。とりあえず PowerShell Core を実行してみたい場合は、左下の「Launch PowerShell」にチェックをつけて [Finish]をクリックしてください。
MacOS への PowerShell Core のインストール
MacOS への PowerShell Core のインストールは簡単です。ただし、brew がインストールされている前提です。brew のインストールについては公式サイト https://brew.sh/index_ja を参照ください。
MacOS にリリース版の PowerShell Core をインストールするには、ターミナルを起動して以下のコマンドを実行してください。
brew cask install powershell
インストールが成功すると、下図のように「powershell was successfully installed!」と表示されます。
Linux 系 OS への PowerShell Core のインストール
Linux 系 OS への PowerShell Core のインストールも簡単です。
以下にリリース版をインストールする際のコマンドを示します。使用する OS に合わせてコマンドを実行してください。
Release 版のインストールコマンド一覧
OS | インストールコマンド |
---|---|
Ubuntu、Debian |
sudo apt-get install -y powershell |
CentOS、RedHat |
sudo yum install -y powershell |
Fedora |
sudo dnf install -y powershell |
ちなみに、以下はプレビュー版をインストールする際のコマンドを示します。ご自身の責任のもとにおいてインストールを実行してください。
Preview 版のインストールコマンド一覧
OS | インストールコマンド |
---|---|
Ubuntu、Debian |
sudo apt-get install -y powershell-preview |
CentOS、RedHat |
sudo yum install -y powershell-preview |
Fedora |
sudo dnf install -y powershell-preview |
筆者は CentOS にインストールをしてみました。
インストールする前に、以下のコマンドを実行して/etc/yum.repos.d/
ディレクトリに独自リポジトリの情報を追加してください。
curl https://packages.microsoft.com/config/rhel/7/prod.repo | sudo tee /etc/yum.repos.d/microsoft.repo
インストールが成功すると、下図のように「完了しました!」と表示されます。
まとめ
PowerShell Core はクロスプラットフォームを対象とした製品です。インストール方法はどの OS も簡単ですので、是非インストールをしてみてください。
次回は、PowerShell Core の基本的な操作方法について説明します。
コメント