このページの本文へ

前へ 1 2 次へ

Windows Info 第272回

あらためて「PowerShell」の現状と登場後の経緯を整理する

2021年04月25日 10時00分更新

文● 塩田紳二 編集● ASCII

  • この記事をはてなブックマークに追加
  • 本文印刷

PowerShellの今と今後

 現在は、PowerShell 7.2がプレビューされており、正式版(安定版とも)は、PowerShell 7.1.3である。ただし、今のところPowerShell 7.xは、ユーザーがインターネットからダウンロードしてインストールする必要があり、Windows 10に標準搭載されているのは、Windows PowerShell 5.1である。

 PowerShell 7.xは、名称からCoreは取れたものの、エディション表示は、Coreのままである。

Windows PowerShellは、エディション(PSEdition)がDesktopになっているのに対して、PowerShell 7は、Coreになっている

 PowerShell 7.xは、Windows PowerShell 5.1の上位版にあたる。基本的な部分はほぼ同等だが、一部の機能は強化されているほか、Windows PowerShellで標準組み込みになっていた機能の一部がプログラムモジュールとして分離されている。これは、マルチプラットフォーム化により、Windows固有の機能を分離したからだ。

 たとえば、以前本連載で解説したMicrosoftストアアプリのパッケージを扱うAPPX関連のコマンドは、PowerShell 7.xではモジュールを別途読み込む必要がある。具体的には、APPX関連のコマンドを使う前に以下のコマンドでAPPXモジュールを読み込む必要がある。

Import-Module APPX -usewindowspowershell

 同じ機能であっても、PowerShell 7とWindows PowerShell 5.1では、振る舞いが違う部分がある。たとえば、PowerShell 7では、文字のエスケープシーケンスに「Escコード」が追加され「`e」で参照できるようになっている。また、JSON中の「//」による注釈は、PowerShell 7.1ではエラーにならないが、Windows PowerShell 5.1ではエラーになるため処理前に取り除く必要がある。

 PowerShell 7は、Windows PowerShellと違って、Windowsのバージョンアップとは別タイミングでバージョンアップされ、その寿命は開発に使われた.NET Coreと同期する。PowerShell 7.1では、.NET 5が利用されている。

 PowerShellや.NETのオープンソース化は、Windows Azureと関係がある。Azureはクラウドであるため、接続するプラットフォームを問わない。しかし、まったくかけ離れていても、管理や運用に問題がある。

 そこでAzureの関連で多くのMicrosoftのソフトウェアがオープンソース化している。Azureで使われているツールは、クライアントでも動作させ、ある意味“地続き”にしたいのだ。それは、Linuxサーバーで動作するソフトウェアをLinuxで開発するというのに似ている。筆者的には、LinuxでPowerShellを使おうという気持ちにはなれないが、仕事での必要性があれば使わざるをえないだろうとも考える。

 そのうち、自分の作ったプログラムがローカルで動いているのか、クラウドで動いているのかを意識しなくなる時代が来る。少なくとも利用者側は、ローカルのアプリケーションとブラウザの中で動作しているクラウドサービスをほとんど区別していないし、スマートフォンなどではそもそも区別することが困難である。そんな時代にPowerShellで打ち込んだコマンドが勝手にクラウドサーバーを設定し、クラウドで処理して結果を表示するなんてことになるんじゃないかという気がしている。

前へ 1 2 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン