ニュース
» 2020年03月10日 15時30分 公開

互換性がないモジュールへの対応も進む:Microsoft、「PowerShell 7.0」を正式リリース

Microsoftは、「PowerShell 7.0」の一般提供を開始した。「Windows PowerShell」のオープンソースエディション「PowerShell Core」の最新メジャーバージョンという位置付けだ。次期7.1の開発も進んでいるという。

[@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

 Microsoftは2020年3月4日(米国時間)、「PowerShell 7.0」の一般提供を開始したと発表した。「Windows PowerShell」のオープンソースエディション「PowerShell Core」の最新メジャーバージョンという位置付けだ。

 PowerShellは、JSON、CSV、XMLなどの構造化データやREST API、オブジェクトモデルの処理に最適化された自動化ツールであり、構成フレームワークでもある。クロスプラットフォームを特徴としており、Windowsの他、LinuxとmacOSで動作する。コマンドラインシェルやオブジェクト指向スクリプト言語に加え、スクリプトやコマンドレットの実行が可能であり、モジュール管理のためのツールセットを含む。

 Microsoftは2017年にPowerShellの新エディションとしてPowerShell Core 6を発表している。PowerShell Coreは、.NET Coreをランタイムとして使用し、WindowsとLinux、macOSのクロスプラットフォームで動作する。SSHベースのPowerShell Remotingが加わった他、RESTとJSONに対するサポートを拡大し、公式Dockerコンテナも加わった。ライセンス面では、初めてオープンソースライセンス(MITライセンス)を採用している。PowerShell Core 6.2以降の2019年には名称を「PowerShell 7」に変えた。

PowerShell 7.0では何が加わったのか

 PowerShell 7.0では、新しいコマンドレットやAPIを追加し、バグを修正した他、次のような数多くの新機能が加わった。

  • ForEach-Objectコマンドレットで、「-Parallel」パラメーターを用いたパイプラインの並列化
  • 新しい演算子
     三項演算子「a ? b : c」
     パイプラインチェイン演算子「||」「&&」
     Null合体演算子「??」「??=」
  • エラーの調査を助けるシンプルな動的エラービューと「Get-Error」コマンドレット
  • ユーザーが暗黙のWindows PowerShellセッションでモジュールをインポートできるようにする互換性レイヤー
  • 新バージョンの自動通知機能
  • PowerShell 7.0からDSCリソースを直接呼び出す機能(実験的機能)
$logNames = 'Security','Application','System','Windows PowerShell','Microsoft-Windows-Store/Operational'
$logEntries = $logNames | ForEach-Object -Parallel {
    Get-WinEvent -LogName $_ -MaxEvents 10000
} -ThrottleLimit 5
$logEntries.Count
50000
ForEach-Objectコマンドレットで、「-Parallel」パラメーターを用いたパイプラインの並列化例

 なお、PowerShell Core 6.xは、「.NET Core 2.x」に対応しているが、PowerShell 7.0は「.NET Core 3.1」に対応している。これにより、新版では特に、Windows上で多くの.NET Framework APIが利用可能になり、既存のWindows PowerShellモジュールとの下位互換性が向上した。

 例えば「Out-GridView」や「Show-Command」などのGUI機能を必要とするWindows上の多くのモジュールや、Windowsの一部として出荷される多くの管理モジュールが含まれる。

PowerShell 7.0の入手方法

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。