PowerShell Core 6.1新機能 Update-Helpほか

【連載】

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

【第27回】PowerShell Core 6.1新機能 Update-Helpほか

[2018/11/09 15:00]後藤大地 ブックマーク ブックマーク

  • サーバ/ストレージ

サーバ/ストレージ

PowerShell Core 6.1ではコマンドレットごとに細かい機能追加や改善も実施されている。今回はそうしたコマンドレットのうち、Update-Help、Where-Object、New-ModuleManifest、Measure-Objectを取り上げる。

Update-Help

PowerShell Coreには新しいヘルプファイルをダウンロードしてインストールを行うUpdate-Helpコマンドレットがある。

これまでUpdate-Helpコマンドレットの実行には管理者ユーザの権限が必要だったが、PowerShell Core 6.1からはユーザ権限でこのコマンドレットを実行できるようになった。

ユーザ権限で動作するUpdate-Helpコマンドレット

PowerShell Core 6.1のUpdate-Helpコマンドレットはユーザ権限で書き込める領域にヘルプファイルをインストールするため、ユーザ権限で実行が可能になっている。Update-Helpコマンドレットを実行するとダウンロードとインストールの進捗を示す様子がCUIベースの進捗バーで表示される。

Where-Object -Not

PowerShell Core 6.1のWhere-Objectコマンドレットに新しく-Notパラメータが追加された。

-Notパラメータを使うことで存在していないパラメータやNUllまたは空のプロパティ値でのフィルタリングが実行できるようになった。

例えば次のようにGet-Serviceコマンドレットの出力をWhere-Objectにパイプで接続すると、依存定義を持っていないサービスのみが出力されるようになる。

依存サービスが定義されていないサービスのみを表示する処理

Get-Service | Where-Object -Not DependentServices

依存サービスが定義されていないサービスのみを表示

逆に、-Notを指定しないで実行すると依存サービスが定義されているサービスのみが表示されるようになる。

依存サービスが定義されているサービスのみを表示する

Get-Service | Where-Object DependentServices

Where-Object -Not DependentServicesでフィルタリングされる内容と、Where-Object DependentServicesでフィルタリングされる内容はお互いに重複しない内容になっている。Where-Object -Not DependentServicesとWhere-Object DependentServicesの出力結果を合わせると、なにもフィルタリングされていない結果と一致する。

Where-Objectに-Notを指定できるようになったことで、場合によってはこれまでよりもスマートに記述できるようになるだろう。

New-ModuleManifest

MicrosoftはPowerShell Core 6.0からBOMなしUTF-8への移行を進めている。PowerShell Core 6.1ではNew-ModuleManifestコマンドレットがアップデートされ、これまでのUTF-16ではなくBOMなしのUTF-8ドキュメントを出力するようになた。

Windowsアプリケーションのいくつかは文書ファイルの先頭にBOM (Byte Order Mark)というデータを必要としている。しかし、BOMを付けると逆に正しく動作しないアプリケーションもあるほか、macOSやLinuxではBOMなしの文書データを扱うことの方が多い。

オープンソースソフトウェアでマルチプラットフォーム対応となったPowerShell CoreとしてはこれまでのようにBOMを付けたデータを生成するよりもBOMなしのデータを生成する方が好ましいと言える。

Measure-Objectに標準偏差

PowerShell Coreにはオブジェクトの特定の型のプロパティ値を数値計算するMeasure-Objectというコマンドレットが含まれている。Measure-Objectを利用することでカウント、最大値、最小値、積算値、平均値などを求めることができる。PowerShell Core 6.1ではこの計算方式に標準偏差(Standard Deviation)が追加された。

Measure-Objectに標準偏差を追加

Measure-Objectはプロパティを指定して計算する対象を指定することができるほか、どの数値計算を実施するのかも指定することができる。今回、標準偏差が追加されたことでオプションに-StandardDeviationが追加されている。

more

これまでWindowsのPowerShell ではmore.comをラップしたmoreと呼ばれる関数が含まれていたが、PowerShell Core 6.1からはこれが削除され、アプリケーションとしてのmoreが使われるようになった。たとえばWindowsであればmore.comだし、macOSであれば/usr/bin/moreが使われる。

macOSでのmore

Windows 10でのmore

moreは多くのオペレーティングシステムでデフォルトで提供されているページャコマンド。提供されている機能やオプションはオペレーティングシステムごとに異なるが、インタラクティブなページャとして使われる点は共有している。

参考資料

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

関連リンク

この記事に興味を持ったら"いいね!"を Click
Facebook で IT Search+ の人気記事をお届けします
4122
2
【連載】PowerShell Core入門 - 基本コマンドの使い方 [27] PowerShell Core 6.1新機能 Update-Helpほか
PowerShell Core 6.1ではコマンドレットごとに細かい機能追加や改善も実施されている。今回はそうしたコマンドレットのうちUpdate-Help、Where-Object、New-ModuleManifest、Measure-Objectを取り上げる。
https://news.mynavi.jp/itsearch/files/PS_300-250.jpg
PowerShell Core 6.1ではコマンドレットごとに細かい機能追加や改善も実施されている。今回はそうしたコマンドレットのうちUpdate-Help、Where-Object、New-ModuleManifest、Measure-Objectを取り上げる。

会員登録(無料)

注目の特集/連載
AI人材に必要なもの
DMM.make AKIBAから生まれたスタートアップたち
はじめてのRPA導入
教えてカナコさん! これならわかるAI入門
RPA入門
PowerShell Core入門
Swagger 3.0 入門
徹底研究! ハイブリッドクラウド
マイナビニュース スペシャルセミナー 講演レポート/当日講演資料 まとめ

一覧はこちら

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

一覧はこちら

ページの先頭に戻る