マイナビニュースマイナビ

PowerShell 7.2プレビュー2登場

【連載】

PowerShell Core入門 - 基本コマンドの使い方

【第130回】PowerShell 7.2プレビュー2登場

[2021/01/08 08:00]後藤大地 ブックマーク ブックマーク

2020年11月15日(米国時間)、次のメジャーアップデートへ向けたプレビュー版となる「PowerShell 7.2 Preview 2」が公開された。このプレビュー版は.NET 5がベースとなっている。次のバージョンは.NET 6の使用が予定されているが、まだ公開を待っている状態だ。.NET 6の開発具合に合わせて、PowerShell 7.2プレビュー版も.NET 6への移行が予定されている。

PowerShell 7.2プレビュー2ではいくつかのバグが修正されているほか、パフォーマンスの向上、コードのクリーンナップ、-PipelineVariable共通パラメータの扱い変更、新機能の追加などが行われている。修正されたバグの中には、PowerShell 7.1で発生していたリパースポイントに関するバグの修正が含まれている。

WindowsではシンボリックリンクファイルやOneDriveファイル、Microsoftがインストールしたアプリケーションなどが「リパースポイント機能」と呼ばれるファイルシステムの機能を使用している。PowerShell 7.1でこのリパースポイントの使用に対してバグが発生しており、NTFS以外のドライブで実行ファイルを使おうとすると「Incorrect Function」エラーが発生するようになっていた。たとえばUSBメモリやネットワーク共有などでもこの問題が発生していた。今回のプレビュー版でこの問題が解消されている。

-PipelineVariable共通パラメーターが、最初の入力オブジェクトだけではなく、パイプラインから渡されるすべてのオブジェクトが正しく含まれるようにも変更されている。これでC#で開発されたコマンドレットと同じ処理をスクリプトで開発されたコマンドレットでも使用できるようになった。ただし、この挙動はこれまでの挙動とは異なるため、互換性については注意が必要だ。

$PSStyle自動変数を導入

PowerShell 7.2プレビュー2には「$PSStyle」という自動変数が新しく導入された。この自動変数はPowerShell 7.1には存在しないものだ。

PowerShell 7.1に$PSStyle自動変数はない

$PSStyle自動変数はPSAnsiRenderingと呼ばれる実験的機能の1つで、ターミナル文字の色、太字、斜体などを制御するANSIエスケープシーケンスを簡単に扱えるようにするものだ。PowerShell 7.2プレビュー2で$PSStyleをチェックすると、次のように自動変数として存在していることがわかる。

PowerShell 7.2プレビュー2には$PSStyle自動変数が導入されている

PowerShell 7.2プレビュー2の$PSStyleの内容をそのままダンプすると次のようになる。

$PSStyleの内容をそのままダンプした例

$PSStyleにはFormatting、Foreground、Backgroundというネストされたタイプが用意されており、これらを組み合わせて使用できるようになっている。加算することで次のように同時に使えるようになっている。

$PSStyleとネストタイプの使用サンプル

上記スクリーンショットはWindows Terminalで$PSStyleを使った例だ。Windows Terminal側の対応とうまく噛み合っていないのか、表示がちょっとおかしいが、エスケープシーケンスによる色やスタイルの変更が機能していることがわかる。

Windows Terminalはまだ開発途上にある。PowerShell 7.2が正式リリースされるまでにはこの辺りも対処されるはずだ。エスケープシーケンスはターミナルで装飾を行う代表的な方法である。PowerShellからエスケープシーケンスの扱いが簡単になることで、より人間が認識しやすいかたちに出力を加工できるようになるはずだ。

PowerShell 7.2も漸進的な改善バージョンかも

PowerShell 7.1にはそれまで実験的だった機能が正式な機能として取り込まれた。だが、全体として見ると細かい修正や改善が進められたバージョンとなっている。PowerShell 7.2の開発状況を見てみると、こちらも言語として大きな変更が取り込まれるとは考えにくく、このまま進んで漸進的なリリースになっていく可能性が高いのではないかと思われる。

しかしそれは別に悪いことではない。このところ細かいバグ修正や改善が続いており、そのうちのいくつかは使い勝手を大きく改善するものだ。ちょっとした変化なのだが、その変化が使う側としてはありがたい。PowerShell 7系はしばらく細かい改善が進んでいくバージョンになるかもしれない。

※ 本記事は掲載時点の情報であり、最新のものとは異なる場合がございます。予めご了承ください。

一覧はこちら

連載目次

もっと知りたい!こちらもオススメ

【連載】RPA入門 - ツールで学ぶ活用シーン

【連載】RPA入門 - ツールで学ぶ活用シーン

AIには、ルールベース、機械学習、深層学習(ディープラーニング)の3つのレベルがあり、レベルが上がるに連れてより高度な人工知能を実現しますが、AIのスピンオフという位置付けで、Digital Labor(仮想知的労働者)によるホワイトカラー業務の自動化を実現するRPAが注目されています。

関連リンク

この記事に興味を持ったら"いいね!"を Click
Facebook で TECH+ の人気記事をお届けします
注目の特集/連載
[解説動画] Googleアナリティクス分析&活用講座 - Webサイト改善の正しい考え方
Slackで始める新しいオフィス様式
Google Workspaceをビジネスで活用する
ニューノーマル時代のオウンドメディア戦略
ミッションステートメント
次世代YouTubeクリエイターの成長戦略
IoTでできることを見つけるための発想トレーニング
教えてカナコさん! これならわかるAI入門
AWSではじめる機械学習 ~サービスを知り、実装を学ぶ~
Kubernetes入門
SAFeでつくる「DXに強い組織」~企業の課題を解決する13のアプローチ~
マイクロサービス時代に活きるフレームワーク Spring WebFlux入門
AWSで作るマイクロサービス
マイナビニュース スペシャルセミナー 講演レポート/当日講演資料 まとめ
セキュリティアワード特設ページ

一覧はこちら

今注目のIT用語の意味を事典でチェック!

一覧はこちら

会員登録(無料)

ページの先頭に戻る