検索
ニュース

Microsoft、「PowerShell 7 Preview 3」を公開正式版は予定通り年内リリース

Microsoftは、多数の新機能を追加した「PowerShell 7 Preview 3」を公開した。PowerShell 7の位置付けは、「Windows PowerShell」のオープンソースエディション「PowerShell Core」の次期バージョンである。

Share
Tweet
LINE
Hatena

 Microsoftは2019年8月20日(米国時間)、「PowerShell 7 Preview 3」を公開した。PowerShell 7は、「Windows PowerShell」のオープンソースエディション「PowerShell Core」の次期バージョン。PowerShell CoreはWindows、Linux、macOSで動作し、コマンドラインシェルやスクリプト言語、コマンド処理フレームワークを含む。

 Microsoftは2019年5月にPowerShell 7のロードマップを発表済みだ。PowerShell 7の開発は順調に進んでおり、ロードマップ通り、2019年末までに一般提供を開始する見込みだ。

 PowerShell 7は、PowerShellの初の「Long Term Servicing」(LTS)リリースでもある。つまり、PowerShell 7は、「.NET Core 3.1」がサポートされている間サポートされる。なお、現行の「PowerShell Core 6」は、モダンライフサイクルサポートが適用されている。

 PowerShell 7 Preview 3の新機能の概要は次の通り。Preview 3を含むプレビュービルドでは、ユーザーのフィードバックを得やすくするため、実験的機能が全て、デフォルトで有効になっている。

シングルアパートメントスレッドがデフォルトに

 PowerShell 7の起動コマンド「pwsh」はPreview 2までは、デフォルトでマルチスレッドアパートメントとして動作していた。だが、WinForms(Windows Forms)やWPF(Windows Presentation Foundation)などのGUI APIは、シングルスレッドアパートメントを必要とする。Preview 3では、pwshはアパートメントステートの扱いに関しては、Windows PowerShellの「powershell.exe」と同等になり、PowerShellスクリプトからのWinFormsやWPFのAPI呼び出しをサポートする。


クリックで拡大(出典:Microsoft

COMメソッドの引数名を表示する

 Windowsでは、PowerShellからCOM APIを呼び出すと、COMメソッドの型情報だけでなく、引数名も表示されるようになった。


クリックで拡大(出典:Microsoft

DBNullとNullStringは$nullと同等に

 PowerShellでデータベース型を扱うと、データベース内で「$null」と同等の「[dbnull]::Value」を得ることがある。だが、PowerShellでは、これは$nullと等しくないため、直接比較ができない。今回の変更により、[dbnull]::Valueと[nullstring]::Valueの両方を、$nullおよび$true取得と比較できるようになった。結果は「$true」となる。

Read-Host -Promptが全ての入力に対応

 スクリプトでRead-Hostを使って入力を受け付けると、特定の文字を使った場合に、予想外の挙動を示す場合があった。Read-Hostがコンソールホストを呼び出す方法と、コンソールホストが入力を受け付ける方法(値が渡される必須パラメーターなど)に違いがあったためだ。

 Preview 3ではこの問題を修正し、Read-Hostが期待通りに入力を受け付けるようになった。


クリックで拡大(出典:Microsoft

Split演算子で負の数をサポート

 Split演算子は、1つまたは複数の文字列を部分文字列に分割する。オプションを指定して、返される部分文字列の最大数を示す値を指定することもできる。

 Preview 3では、部分文字列の最大数として負の数を指定できるようになった。負の数を指定すると、分割が通常の左から右へではなく、右から左へと進む。

ForEach-Objectに-Parallelを追加した

 ForEach-Objectに、スクリプトブロックを受け取って並列に実行する「-Parallel」パラメーターを追加した。オプションの「-ThrottleLimit」パラメーターを指定すると、並列に使用するスレッドの最大数を設定できる(デフォルトは5)。


クリックで拡大(出典:Microsoft

AppX再解析ポイントを解決

 Windows Storeからインストールしたアプリを、Windows 10のコマンドラインでリスト表示すると、サイズが0バイトと表示される。実はこれらのファイルは、実際の実行可能プログラムへのリンクだ。Preview 3での変更により、Get-ChildItemを使用すると、リンクではなくターゲットの実行可能プログラムを表示するようになった。


クリックで拡大(出典:Microsoft

ログインシェルとしてのpwsh

 LinuxとmacOSには、ログインシェルという概念がある。ログインシェルは、他のアプリとシェルが継承する環境を作り上げる。Preview 2までは、pwshをデフォルトのログインシェルとして使用すると、一部の環境変数が失われたり、不完全になったりする場合があった。

 Preview 3での変更により、pwshは「sh」(Bourne Shell)と同じようにログイン環境を作り上げるようになり、全てが正確に動作するようになった。

テレメトリーの追加

 Preview 3では、PowerShellは追加のデータポイントをMicrosoftに送信するようになった。これらのデータは、PowerShellの使用状況をよりよく理解し、PowerShell開発における今後の投資の優先順位を決定するために使用されるという。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る