PowerShell 7.0.0 Preview6新機能 - GUIサポート

【連載】

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

【第85回】PowerShell 7.0.0 Preview6新機能 - GUIサポート

[2020/02/07 08:00]後藤大地 ブックマーク ブックマーク

復活したGUI系コマンドレット機能

PowerShell 7.0.0 Preview6で導入された新機能は、どれもエキサイティングで解説するものを選ぶのが大変だ。今回は、PowerShell 7.0.0 Preview6で導入されたGUI機能にフォーカスしたい。

PowerShell 7.0.0 Preview6

Windows PowerShellにはもともとGUI系のコマンドレットが存在している。これは.NETがWPF (Windows Presentation Foundation)をサポートしているためだ。しかし、.NET CoreからはWPFのサポートが廃止された。そのため、PowerShell CoreからもGUI系のコマンドレット機能が削除されている。

だが今回、.NET Core 3.0にWPFのサポートが戻ってきた。これにより、PowerShell 7.0.0 Preview6でもいくつかのGUI系コマンドレットが再び動作するようになった。今回はこの復活した機能を紹介しよう。

Out-GridViewでテーブルをGUI表示

PowerShell Coreではデータは最終的にターミナルにテキストとして表示される。次のスクリーンショットはGet-Processコマンドレットの実行例だ。

Get-Processコマンドレット実行例

PowerShell 7.0.0 Preview6には「Out-GridView」コマンドレットが復活している。先程のGet-ProcessコマンドレットをパイプラインでOut-GridViewへ接続してみよう。

Get-Processの出力をOut-GridViewへ接続

すると、次のようなダイアログにGet-Processコマンドレットの出力したデータが表示されるようになる。このダイアログではキーワードで出力をフィルタリングしたり、列ごとにデータをソートしたりといったことができる。簡単なExcelのようなもので、これだけでも結構便利だ。

Out-GridViewで表示されたダイアログでGet-Processのデータを表示

Out-GridViewコマンドレットには-PassThruというパラメータが用意されている。このパラメータを指定すると、Out-GridViewが表示するダイアログの選択結果がPowerShell側に戻ってくるようになる。

Out-GridViewコマンドレットは-PassThruパラメータで通信の継続が可能

次のスクリーンショットはOut-GridView -PassThruで表示されたダイアログだ。edgeというキーワードでフィルタリングするとともに、表示されたデータを全て選択している。-PassThruパラメータを指定するとダイアログの右下に「OK」「Cancel」というボタンが表示されるようになっており、ここで「OK」を選択するとダイアログで選択肢た内容がデータとして次の処理へ流れていくようになる。

Out-GridView -PassThruで表示されたダイアログのサンプル

次のようにダイアログで選択した内容がターミナルに表示されたことを確認できる。

Out-GridViewのダイアログで選択された内容がターミナルに出力されている

とりあえずデータを取り出して中身をチェックしたいといった場合、このOut-GridViewを使うと簡単だ。

Show-Commandでコマンドレットの使い方表示と実行

PowerShell 7.0.0 Preview6にはShow-Commandコマンドレットも復活している。

PowerShell 7.0.0 Preview6にはShow-Commandコマンドレットも復活

Show-Commandコマンドレットを引数なしで実行すると、次のようなダイアログが起動してくる。

Show-Commandコマンドレットで表示されるダイアログ

中央上部にコマンドレットが列挙されており、選択することで対象となるコマンドレットのパラメータなどをチェックできる。

コマンドレットを選択したパラメータなどを表示

Show-Commandコマンドレットにコマンドレット名を指定すると、はじめからそのコマンドレットのパラメータがなどが表示される。

Show-Commandコマンドレットにコマンドレット名を指定して起動

指定されたコマンドレットのページが表示される

Show-Commandコマンドレットでは、パラメータを表示させるだけではなく、コマンドレットを実行に移すこともできる。パラメータや属性などが指定できるようになっており、ここで値を入力して右下の「Run」を選択するとコマンドレットの実行へ向けて文字列がPowerShell 7に戻ってくるようになる。

Show-Commandコマンドレットにコマンドレット名を指定して起動

属性やパラメータ、引数などを指定して「Run」を押す

Show-Commandで指定した内容がPowerShell 7のターミナルに表示されている

当然だが、ここでエンターキーを押せばコマンドレットが実行される。

Show-Commandによって生成されたコマンドレットのコマンドラインを実行

Show-Commandをどれだけ使うかは疑問だが(使い方を調べるにはオンラインマニュアルを読んだほうがてっとり早いし、説明が掲載されているとも言えないので)、こういった使い方もできるということだ。

Get-Helpでマニュアルを表示

PowerShell 7.0.0 Preview6ではGet-Helpコマンドレットにも-ShowWindowパラメータが復活しており、ヘルプの内容をダイアログで表示させることができるようになった。Show-Commandと違ってこちらは結構使えると思う。このコマンドレットを使って、使いたいコマンドレットのヘルプをダイアログとして置いておくことができる。

Get-Helpコマンドレットに-ShowWindowパラメータが戻ってきた

Get-Helpコマンドレットによって表示されたダイアログ

コマンドレットの使い方を忘れるのはよくあることなので、こんな感じで別のダイアログとして置いておけると結構便利だ。

GUIのサポートはWindowsのみ

今回紹介してきた機能は、当然だが、WPFを使ったユーザーインタフェース機能であるため、今のところWindowsでしか動作しない。次のようにWindows 10で動作しているコマンドレットをmacOSで実行しようとしても、エラーが表示されるだけだ。

GUI系機能は今のところWindowsのみ

PowerShell 7におけるGUIのサポートがWindows 10以外のプラットフォームに及ぶかどうかは、今後のユーザーの反応次第だと思う。Linuxではなくてもよいかもしれないが、macOSであればmacOSのGUIで同じものが表示されると便利だなという気はする。この機能に関しては、正式リリース後にほかのプラットフォームに対してどのように展開されていくのか注目したい。

参考資料

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

一覧はこちら

連載目次

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

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

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

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

関連リンク

この記事に興味を持ったら"いいね!"を Click
Facebook で IT Search+ の人気記事をお届けします
注目の特集/連載
[解説動画] Googleアナリティクス分析&活用講座 - Webサイト改善の正しい考え方
[解説動画] 個人の業務効率化術 - 短時間集中はこうして作る
ミッションステートメント
教えてカナコさん! これならわかるAI入門
知りたい! カナコさん 皆で話そうAIのコト
対話システムをつくろう! Python超入門
Kubernetes入門
AWSで作るクラウドネイティブアプリケーションの基本
PowerShell Core入門
徹底研究! ハイブリッドクラウド
マイナビニュース スペシャルセミナー 講演レポート/当日講演資料 まとめ
セキュリティアワード特設ページ

一覧はこちら

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

一覧はこちら

会員登録(無料)

ページの先頭に戻る