PowerShell 7.0.0 Preview6登場 - 新機能追加最後のバージョン

【連載】

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

【第78回】PowerShell 7.0.0 Preview6登場 - 新機能追加最後のバージョン

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

PowerShell 7.0.0 Preview6登場

MicrosoftからPowerShell 7のリリースへ向けた最新プレビュー版となる「PowerShell 7.0.0 Preview6」が公開された。今回のバージョンには多くの新機能が追加されている。Microsoftはこのリリースを最後のプレビューリリースにするとしており、新機能が追加される最後のバージョンとなることから、駆け込み的な意味もあって多くの機能が導入されたのではないかと思われる。

PowerShell 7.0.0 Preview6

2019年12月にはプレビュー版ではなく、リリース候補版が公開される見通しだ。リリース候補版には新しい機能は追加されず、基本的にはバグ修正が行われることになる。コマンドレットにおける小さな変更などは取り込まれるとされているが、2019年12月以降は基本的に変更は行われなくなる。Microsoftは2020年1月に「PowerShell 7」の公開を予定しており、長期に渡ってサポートされるバージョンになるものと考えられている。

PowerShell 7.0.0 Preview6における主な変更点は次のとおり。

パフォーマンスの向上

  • Parser.SaveErroにおいてクロージャを使用しないように変更
  • Regexインスタンスを新しく生成するタイミングにおけるキャッシュ機能の向上
  • types.ps1xml、typesV3.ps1xml、GetEvent.types.ps1xmlからのPowerShell組み込み型データ処理の向上
  • PSConfiguration.ReadValueFromFileのパフォーマンス向上とメモリ使用量の改善

実験的機能

  • ファイルシステム関連のアウトプットにおいて、UNIX系OSのstat情報を加味するように変更
  • null条件オペレータとして「?.」と「?[]」をサポート
  • PowerShell Coreにおいて非互換であるWindows PowerShellモジュールを使用できるようにする機能を追加

コマンドレットのアップデートと修正

  • Get-WinEventコマンドレットにリミットチェックを追加
  • -ErrorVariableが指定された場合にStopUpstreamCommandsExceptionに入らないようにコマンドランタイムを更新
  • ネイティブコマンド向けに[Console]::OutputEncodingに対する出力エンコーディングを指定するように変更
  • サンプルにおけるマルチラインコードブロックに対応
  • Select-StringコマンドレットにCultureパラメータを追加
  • デフォルトでコレクションを展開するようにConvertFrom-Jsonコマンドレットを変更
  • Group-Objectコマンドレットにおいて-CaseSensitiveパラーメタおよび-AsHashtableパラメータを指定した場合、大文字と小文字を区別するハッシュテーブルを使用するように変更
  • 大文字と小文字を加味するようにパスを再構築した場合、ファイルの列挙に失敗した場合に例外を処理するように変更
  • myCommandの代わりにActivityを表示するようにConciseViewを修正
  • WebコマンドレットがHTTPエラーステータスを無視することを許可
  • ConvertTo-Jsonコマンドレットにおいて$nullをサポート
  • ConvertTo-Jsonコマンドレットにおいて[AutomationNull]::Valueおよび[NullString]::Valueと$nullと同じように扱うように変更
  • SSHリモーティングを実施するときのIPv6アドレスからブランケットを削除
  • pwshコマンドに空白だけが送信された場合にクラッシュする問題を修正
  • Windowsのみならずクロスプラットフォームに対応したGet-ClipboardコマンドレットとSet-Clipboardコマンドレットを導入
  • PSConfiguration.csの設定としてnullが取得された場合にデフォルト値を返すように変更
  • IO例外を非終了処理として扱うように変更
  • TabExpansion2を-CursorColumn不要および$InputScript.Lnegthとして扱うように変更
  • ホストがスクリーンの列行の値を返さないときの処理を実装
  • ホストがアクセントカラーをサポートしていない場合の処理を改善
  • 出力にVTエスケープシーケンスを含めるかどうかを制御する$env:__SuppressAnsiEscapeSequencesを追加
  • Start-Jobコマンドレットにおいて空白指定の-WorkingDirectoryパラーメタをサポート
  • 末尾にバックスラッシュを含むStart-Jobコマンドレットのワーキングディレクトリパスを修正
  • Update-Listコマンドレットを再度追加
  • WindowsプラットフォームにおいてGet-Counterコマンドレットを再度追加
  • WindowsプラットフォームにおいてOut-Printerコマンドレットを再度追加
  • WindowsプラットフォームにおいてClear-RecycleBinコマンドレットを再度追加

ツール

  • Visual StudioでビルドできるようにSDKToUseプロパティに対するデフォルト設定を追加
  • MSIインストールに対応するようにInstall-Powershell.ps1にパラメータを追加
  • install-powershell.ps1にサンプルを追加

エンジンのアップデートと修正

  • pwshコマンドを$env:PSModulePathを引き継ぐように変更するとともに、powershell.exeが適切に起動できるように変更

テスト

  • ハッシュテーブルにおける鍵を適切に検出するためにstringdataテストを変更
  • テストモジュールをアンロード
  • URLテストのテスト間時間を増加
  • テストアクションを正確に記述するようにテストをアップデート

コードクリーンナップ

  • Compiler.csにおけるコーディングスタイルを改善
  • InitialSessionState.csにおけるコーディングスタイルを改善
  • PSSessionクラスにおけるコーディングスタイルを改善
  • CommaDelimitedStringCollectionに対する使われていない型コンバータを削除
  • 機能していないUpdate-Help関連の機能を削除
  • 組み込み型エイリアスを使用するようにアップデート
  • 使われていないセッティングキーConsolePromptingを削除するとともに、ExecutionPolicyセッティングクエリー時に不必要な文字列が作成されるのを削除
  • デイリービルドにおけるアップデート通知機能を無効化
  • 以前削除したデバッグAPIを復帰

ドキュメント

  • CONTRIBUTING.mdをアップデート
  • README.mdにおけるインストールドキュメントリンクを修正
  • install-powershell.ps1スクリプトにサンプルを追加
  • CHANGELOG.mdにおるSelect-Stringの強調機能とImport-DscResourceの誤りを修正
  • powershell-beginners-guide.mdから古いリンクを削除

ビルドおよびパッケージ

  • Debian 10、Debian 11、CentOS 8のパッケージを追加
  • x86 MSIXパッケージのビルドに対応
  • win7x86 MSIXパッケージのビルドに対応
  • セマンティックバージョンをNormalizeVersion関数に渡すことを許可
  • .NETコアフレームワークを3.1-preview.3へアップデート
  • PSReadLineを2.0.0-beta5から2.0.0-beta6へアップデート
  • Newtonsoft.Jsonを12.0.2から12.0.3へアップデート
  • Markdig.Signedを0.17.1から0.18.0へアップデート
  • ThreadJobを2.0.1から2.0.2へアップデート
  • Microsoftストアの要件に準拠するようにApp Storeマニフェストおよびパッケージングモジュールをアップデート

非互換変更

  • Test-Connectionコマンドレットの動作をWindows PowerShellのTest-Connectionコマンドレットと同じ動作になるように変更
  • ParenExpression、SubExpression、ArrayExpressionの$?の値を自動的にTrueにするのではなく、コンテキストの中で最後に実行された結果に置き換えるように変更
  • Start-Jobコマンドレットにおけるワーキングディレクトリをカレントディレクトリに設定

ダウンロード


PowerShell 7.0.0 Preview6は次のURL経由でダウンロード可能。


Debian 10、Debian 11、CentOS 8のパッケージが追加されており、これまでよりもパッケージの提供されるプラットフォームが増えている。

参考資料

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

一覧はこちら

連載目次

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

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

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

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

関連リンク

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

一覧はこちら

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

一覧はこちら

会員登録(無料)

ページの先頭に戻る