PowerShell 7.0.0 Preview6新機能 - ネットワーク接続テストほか

【連載】

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

【第87回】PowerShell 7.0.0 Preview6新機能 - ネットワーク接続テストほか

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

Test-Connectionが原点回帰

PowerShell 7.0.0 Preview6で導入された新機能や変更点について取り上げるのは、今回が最後になる。正式リリース前のプレビュー版だが、これまでに紹介したようにPreview6には多数の新機能追加や機能改善が行われている。Windows PowerShellの後継プロダクトに位置づけるための変更が急ピッチで行われた印象だ。

今回取り上げるのは、Test-ConnectionコマンドレットとImport-Moduleコマンドレットに追加された新機能だ。Test-Connectionコマンドレットは、Windows PowerShellに存在する。いわゆるpingコマンドと同じような動作をする機能で、WMI (Windows Management Instrumentation)を使って実装されている。このため、PowerShell Coreとしてオープンソース化された段階で、WMIに依存していたTest-Connectionコマンドレットはいったん削除された。

PowerShell Coreとして公開されてから、コミュニティの手によってTest-Connectionコマンドレットが再実装された。今度は.NET Core APIを使った実装が行われたため、WindowsのみならずmacOSやLinuxでも使用できるコマンドレットになった。

PowerShell 7.0.0 Preview6では、この再実装されたTest-Connectionコマンドレットに改善が加えられている。PowerShell CoreではTest-Connectionコマンドレットが再実装されたものの、Windows PowerShellとは異なる出力になっていた。PowerShell 7.0.0 Preview6ではこの部分が改善され、Windows PowerShellと同じような出力に変更されたのである。Windows PowerShellの後方互換性を向上させたかたちと言えるだろう。

Test-Connectionコマンドレット実行例

次のスクリーンショットは、Windows PowerShellでTest-Connectionコマンドレットを実行した結果だ。Windows PowerShellっぽい出力になっている。

Windows PowerShellでTest-Connectionコマンドレットを実行

一方、次のスクリーンショットはPowerShell CoreでTest-Connectionコマンドレットを実行した結果だ。出力結果がWindows PowerShellのTest-Connectionコマンドレットではなく、よくUNIX系OSで使われているpingコマンドに似ていることがわかる。

PowerShell CoreでTest-Connectionコマンドレットを実行

PowerShell 7.0.0 Preview6になると、Test-Connectionコマンドレットの出力が次のようにWindows PowerShellっぽい感じに戻ってきている。全く同じ出力ではないのだが、pingコマンドが出力するような情報もテーブル形式で出力されるようになっており、Windows PowerShellっぽくもありつつ、これまでよりも扱いやすいコマンドレットに改善されていることがわかる。

Windows 10のPowerShell 7.0.0 Preview6でTest-Connectionコマンドレットを実行

PowerShell Coreのときと同じように改善されたTest-Connectionコマンドレットは、クロスプラットフォームで提供されている。macOSで実行してもLinuxで実行しても、同じような出力を得ることができる。

macOSのPowerShell 7.0.0 Preview6でTest-Connectionコマンドレットを実行

macOSのPowerShell 7.0.0 Preview6でTest-Connectionコマンドレットを実行

開発しているのがMicrosoftのエンジニアだけだった場合、Test-Connectionコマンドレットの再実装やクロスプラットフォーム化にはもっと時間がかかったかもしれない。PowerShellはPowerShell Coreとしてオープンソース化してからコミュニティからのコントリビュートの活用が進んでいる。

Import-Moduleに非WinRM依存のインポート機能

Windows PowerShellからPowerShell Coreとしてオープンソース化された段階で、PowerShell Coreと互換性のないWindows PowerShellモジュールをインポートするための「Windows Compatibility Module」と呼ばれる機能が追加された。この機能は、WinRMと暗黙的なリモート処理を活用して機能を実現している。

PowerShell 7.0.0 Preview6にはImport-Moduleコマンドレットに同じような機能が取り込まれた。ただし、Import-Moduleコマンドレットに導入された機能はWinRMには依存しておらず、代わりにWindows PowerShell 5.1に依存している。つまり、PowerShell Core以降と互換性がないモジュールに関しては自動的にWindows PowerShell 5.1でモジュールを読み込んでリモート処理を行い、その結果をPowerShell 7のセッションに反映するという仕組みを採用しているわけだ。

この機能は、Windows Serverを管理している場合に特に役立つ、エンタープライズ用途では利用価値の高い機能だと言える。一方、Windows 10のようにクライアントとしてしか使っていないPCに対しては、この機能を使うことはあまりないかもしれない。

PowerShell 7リリース前の最後の大きな変更

PowerShell 7.0.0 Preview6はPowerShell 7の正式版をリリースする前の、最後の大きな変更バージョンだとされている。PowerShell 7の正式版リリース後にはまた新機能の追加などが行われるようになるだろうが、それまでしばらくの間はもう少し、緩やかな動きになる見込みだ。

参考資料

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

一覧はこちら

連載目次

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

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

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

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

関連リンク

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

一覧はこちら

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

一覧はこちら

会員登録(無料)

ページの先頭に戻る