この記事は2014年1月10日に作成されました。 |
2013年、Windows 8がバージョンアップし、Windows 8.1になりました。その陰に隠れるようにWindows Server 2012もバージョンアップし、Windows Server 2012 R2となりました。大幅な機能変更はあまり無いとも言われていますが、システム管理者にとっては微妙な差異がトラブルの種になるなど、悩みどころでもあります。
さて、システム管理といえばPowerShell。え、と思った方は今すぐ考えを改めてください。マイクロソフトがシステム管理用のコマンドとして最も力を入れているのがPowerShellです。
このPowerShellも、今回のバージョンアップに伴い3.0から4.0へとバージョンアップしています。「ほとんど使っていないのに、いつの間にか4.0かよ」なんて声が聞こえてきそうですが、4.0です。
「これからはPowerShell」だと言っても、コマンドプロンプトを活用しシステム管理をしていた方、過去のバッチファイルやスクリプトなどの資産が大量にある方、つまりコマンドプロンプトのベテランほど、PowerShellへの移行(?)が進んでいないのではないでしょうか。その理由は色々あると思いますが、1つに新しい体系のコマンドを憶えなければ、というPowerShellへの拒否反応などがあるように感じています。
ここでは、そんな方(そうでない方も含めて)、"明日からコマンドプロンプトを開かなくていい" ようになってもらおうと思います。
コマンドプロンプトのベテランの方がPowerShellに移行するには、最初に考え方を改める必要があります。それは
「PowerShellはコマンドプロンプトと別ものではなく、コマンドプロンプトの機能を含むものである」
ということです。両者の内部的な構造や実装技術は異なりますが、利用する上ではこのように考えて差し支えありません。
その理由を説明するために、コマンドプロンプトの復習を兼ねてコマンドプロンプトとPowerShellでは、何が実行できるのかをまとめてみます。
コマンドプロンプトで実行できるもの | PowerShellで実行できるもの |
内部コマンド 外部のファイルを利用せず、あらかじめ組み込まれているコマンド 例、DIR、COPYなど
|
コマンドレット 外部のファイルを利用せず、あらかじめ組み込まれているコマンド エイリアス設定済み多数 例: Get-ChildItem、Copy-Itemなど |
外部コマンド exeファイルなどの実体があるコマンド Windowsに付属するコマンド アプリケーションと一緒に追加されるコマンド 例、XCOPY(Xcopy.exe)、 |
Windowsネイティブコマンド exeファイルなどの実体があるコマンド Windowsに付属するコマンド アプリケーションと一緒に追加されるコマンド 例、XCOPY(Xcopy.exe)、 |
スクリプト(バッチファイル)
|
スクリプト
|
関数 名前を付けたスクリプトブロック
|
見ての通り、コマンドプロンプト(CMD.EXE)とPowerShellでできることはほとんど変わりません。違うのは、内部コマンド(コマンドレット)の利用規則だけです。
また、PowerShellからは、外部コマンドを自由に使えますし、スクリプトも実行できます。CMD.EXEの代表的な内部コマンドはPowerShell用に別名がつけられているので、単純な機能なら同じように使えます。
たとえばPowerShellでDIRコマンドを実行すると、ファイル名の一覧が表示されます。
次回はこれらの機能についてもう少し詳しく紹介します。
なお、PowerShellの設計者の一人であるBruce Payetteの著書「Windows PowerShellインアクション」では、Windowsに付属するEXEファイル形式のコマンド(CMD.EXEの外部コマンド)を「ネイティブコマンド」と呼んでいますが、ここでは「Windowsネイティブコマンド」としました。
第2回はこちら≫ PowerShellの勉強の仕方(その2)
トレノケートは、2002年にMicrosoftのラーニングソリューション分野において、日本で初めてラーニング部門のゴールドパートナーに認定されました。以降、Microsoft認定資格対応研修、Windows Server 研修、Microsoft Azure 研修など幅広い分野で多数の最新コースラインナップを提供し続けています。