PowerShell 7.0.0 Preview6新機能 - Webコマンドレットにおけるエラーチェック回避機能

【連載】

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

【第80回】PowerShell 7.0.0 Preview6新機能 - Webコマンドレットにおけるエラーチェック回避機能

[2019/12/27 08:00]後藤大地 ブックマーク ブックマーク

PowerShell 7.0.0 Preview6の新機能たち

PowerShell 7.0.0 Preview6の新機能を紹介する前にPowerShell 7.0.0 RCが公開されてしまったため、順序が逆になってしまったが、PowerShell 7.0.0 Preview6で導入された新機能を順次紹介していこうと思う。PowerShell 7.0.0 RCはすでにリリースへ向けたバグ修正などしか行われていないので、正式版がリリースされるまではPreview6で導入された機能を紹介したほうがよいだろう。

PowerShell 7を実行するための主要なターミナルアプリケーションは「Windows Terminal」になりそうなわけだが、こちらはもう少し開発が続く見通しだ。今後も毎月1回のプレビュー版公開が続き、2月か3月の段階で機能フィックスを目指すとしている。時期的に考えると、4月にRCがリリースされて、5月に1.0 GAが公開されるという流れになりそうだ。この頃にはフィーチャーアップデートとなるWindows 10 version 2004 (20H1)の公開が予想されるため、現在開発が進められているPowerShell 7やWindows Terminalは、2020年最初のフィーチャーアップデートで実質的に花開くことになるだろう。

Webコマンドレットにおけるエラーチェック回避機能の導入

PowerShellではWebコマンドレットでエラーが発生した場合、基本的にエラーオブジェクトからデータを取得する必要があった。例えば、サービスが停止したり、ネットワークがタイムアウトになったりすると、エラーとなっていつもの真っ赤な文字列がターミナルを埋め尽くすことになる。だが、PowerShell 7.0.0 Preview6に導入された機能では、この辺りの処理をもう少しスマートに書けるようになっている。

次のスクリーンショットは、コンテンツが存在しないURLを指定した場合のこれまでの動作である。

これまでの動作

このとき、コンテンツとしては次のような内容が返ってきている。

実際に返信として受け取っているコンテンツ

ヘッダは、次のように「HTTP/1.1 404 Not Found」が返ってきている。要するにエラーだ。

実際に返信として受け取っているヘッダ

PowerShell 7.0.0 Preview6のInvoke-RestMethodには「-SkipHttpErrorCheck」というパラメータが新しく追加されており、対象が「404 Hot Found」であろうとも、エラーにならずにコンテンツが取得できるようになった。これは、次のように動作する。

新しく追加された-SkipHttpErrorCheckパラメータを使うと、curlで取得したようにコンテンツの内容を取得できる

先程のコマンドレットにさらに「-ResponseHeadersVariable 変数名」といった指定を行うと、「curl —head」を指定した場合のように、ヘッダの内容を変数に収めることができる。

「-ResponseHeadersVariable 変数名」でレスポンスヘッダの中身を変数に収めることができる

変数の内容は次の通りだ。

変数に収められたレスポンスヘッダの内容

この仕組みになっていれば、コンテンツとヘッダを個別に取得した上で、エラーに対して処理を行うといった処理が実装しやすい。この機能はMicrosoftのエンジニアが考案したのではなく、コミュニティの開発者から寄せられたものとされている。最近はコミュニティから寄せられた機能が積極的に取り込まれており、実際に利用する側が扱いやすくなるような機能の追加が続いている。

エラー周りの処理をもっと扱いやすく

PowerShell 7.0.0 Preview5のときもそうだったが、このところエラーハンドリング周りの改善が進んでいる。PowerShellは便利なのだが、やはり、エラーが発生した場合の動きがとても煩雑な感は否めない。「何もそこまで主張しなくても……」といった反応が返ってくるので、どうしても若干面倒に感じてしまうところだ。

PowerShell 7はこのところ、徐々にだがこうした面倒な処理の改善が進んでいるように見える。来月公開が予定されているPowerShell 7は、Windows PowerShell 5.1の後継としても、新しいバージョンのプログラミング言語としても、なかなか魅力的なバージョンに仕上がっていきそうだ。

参考資料

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

一覧はこちら

連載目次

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

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

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

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

関連リンク

この記事に興味を持ったら"いいね!"を Click
Facebook で IT Search+ の人気記事をお届けします
注目の特集/連載
[解説動画] Googleアナリティクス分析&活用講座 - Webサイト改善の正しい考え方
[解説動画] 個人の業務効率化術 - 短時間集中はこうして作る
ミッションステートメント
教えてカナコさん! これならわかるAI入門
AWSではじめる機械学習 ~サービスを知り、実装を学ぶ~
対話システムをつくろう! Python超入門
Kubernetes入門
SAFeでつくる「DXに強い組織」~企業の課題を解決する13のアプローチ~
PowerShell Core入門
AWSで作るマイクロサービス
マイナビニュース スペシャルセミナー 講演レポート/当日講演資料 まとめ
セキュリティアワード特設ページ

一覧はこちら

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

一覧はこちら

会員登録(無料)

ページの先頭に戻る