次の方法で共有


PowerShell 7.0の新機能

PowerShell 7.0は、オープンソースのクロスプラットフォーム(Windows、macOS、Linux)版のPowerShellで、異種環境とハイブリッドクラウドを管理するために構築されています。

今回のリリースでは、以下を含むいくつかの新機能を導入します。

  • パイプライン並列化 ForEach-Object -Parallel
  • 新オペレーター:
    • 三元演算子: a ? b : c
    • パイプラインチェーンオペレーター: || および &&
    • ヌル条件付き演算子: ????=
  • 誤差の調査を容易にするための簡略化かつ動的な誤差ビューと Get-Error コマンドレット
  • ユーザーが暗黙のWindows PowerShellセッション内でモジュールをインポートできるようにする互換層
  • 自動新バージョン通知
  • PowerShell 7(実験的)から直接DSCリソースを呼び出す機能

機能や修正の全リストを見るには、 変更履歴をご覧ください。

PowerShellはどこにインストールできますか?

PowerShell 7は現在、x64上で以下のオペレーティングシステムをサポートしています。

  • Windows 8.1および10
  • Windows Server 2012、2012 R2、2016、2019
  • macOS 10.13+
  • Red Hat Enterprise Linux(RHEL)/CentOS 7
  • Fedora 30+
  • Debian 9
  • Ubuntu LTS 16.04+
  • Alpine Linux 3.8+

さらに、PowerShell 7.0はDebian、Ubuntu、ARM64のAlpine LinuxのARM32およびARM64バージョンをサポートしています。

お好みのOSである WindowsmacOSLinuxのインストール手順を確認してください。

公式にはサポートされていませんが、コミュニティは Arch やKali Linux向けのパッケージも提供しています。

Debian 10とCentOS 8は現在WinRMリモートに対応していません。 SSHベースのリモート設定の詳細については、「 PowerShell Remoting over SSH」をご覧ください。

サポートされているオペレーティングシステムやサポートライフサイクルに関する up-to情報については、 PowerShellサポートライフサイクルをご覧ください。

PowerShell 7の実行

PowerShell 7はWindowsのPowerShellとは別のディレクトリにインストールされます。 これにより、PowerShell 7とWindows PowerShell 5.1を並行して動作させることが可能になります。 PowerShell 6.xの場合、PowerShell 7はPowerShell 6.xを除去するインプレスアップグレードです。

  • PowerShell 7は %programfiles%\PowerShell\7
  • %programfiles%\PowerShell\7 フォルダーは $env:PATH に追加されます

PowerShell 7インストーラーパッケージは、以前のバージョンのPowerShell 6.xをアップグレードします:

  • Windows版PowerShell 6.x: %programfiles%\PowerShell\6%programfiles%\PowerShell\7
  • Linux: /opt/microsoft/powershell/6/opt/microsoft/powershell/7
  • macOS: /usr/local/microsoft/powershell/6/usr/local/microsoft/powershell/7

Windows PowerShellでは、PowerShellを起動するための実行ファイルは powershell.exeと呼ばれています。 バージョン6以降では、実行ファイル名が並行実行をサポートするように変更されています。 PowerShell 7を起動するための新しい実行ファイル名は pwsh.exeです。 プレビュービルドは7-previewディレクトリのpwshではなく、pwsh-previewとしてそのまま残ります。

Windows PowerShellとの後方互換性の向上

PowerShell 7.0は.NET Core 3.1への移行を示し、既存のWindowsPowerShellモジュールとの後方互換性を大幅に向上させました。 これには、 Out-GridViewShow-CommandなどのGUI機能を必要とするWindows上の多くのモジュールや、Windowsの一部として提供される多くのロール管理モジュールが含まれます。

Windowsでは、新しいスイッチパラメータ UseWindowsPowerShellImport-Moduleに追加されました。 このスイッチはPowerShell 7のプロキシモジュールを作成し、ローカルのWindowsのPowerShellプロセスを使って、そのモジュールに含まれるコマンドレットを暗黙的に実行します。 インポートモジュールの詳細については、

どのMicrosoftモジュールがPowerShell 7.0で動作するかの詳細については、 モジュール互換性表をご覧ください。

並列実行が ForEach-Object に追加されました

コレクション内のアイテムを反復する ForEach-Object コマンドレットは、新しい Parallel パラメータとの並列性を組み込みました。

デフォルトでは、並列スクリプトブロックは並列タスクを開始した呼び出し元のワーキングディレクトリを使用します。

この例は、ローカルWindowsマシン上の5つのシステムログから50,000のログエントリを取得しています:

$logNames = 'Security','Application','System','Windows PowerShell','Microsoft-Windows-Store/Operational'

$logEntries = $logNames | ForEach-Object -Parallel {
    Get-WinEvent -LogName $_ -MaxEvents 10000
} -ThrottleLimit 5

$logEntries.Count

50000

Parallelパラメータは、各入力ログ名に対して並列実行されるスクリプトブロックを指定します。

新しい ThrottleLimit パラメータは、ある時点で並列実行されるスクリプトブロックの数を制限します。 既定値は 5 です。

$_変数を使ってスクリプトブロック内の現在の入力オブジェクトを表現します。 $using:スコープを使って、実行中のスクリプトブロックに変数参照を渡します。

ForEach-Objectの詳細については、

三項演算子

PowerShell 7.0は、簡略化された if-else 文のように振る舞う三進演算子を導入します。 PowerShellの三進演算子は、C#三進演算子構文を密接にモデル化しています:

<condition> ? <if-true> : <if-false>

条件式は常に評価され、その結果を ブールに 変換して次にどの枝を評価するかを決定します。

  • <if-true> 式が true の場合、<condition> 式が実行されます
  • <if-false> 式が false の場合、<condition> 式が実行されます

例えば次が挙げられます。

$message = (Test-Path $path) ? "Path exists" : "Path not found"

この例では、パスが存在する場合、 パスの存在 が表示されます。 パスが存在しない場合は 「パスは見つからない 」と表示されます。

IF に関する詳細情報は。

パイプラインチェーンオペレーター

PowerShell 7は &&|| 演算子を実装し、パイプラインを条件付きでチェーン化します。 これらの演算子はPowerShellで「パイプラインチェーン演算子」と呼ばれ、 bashzshのようなシェルのANDやORリスト、さらにWindows Command Shell(cmd.exe)の条件付き処理記号に似ています。

&& 演算子は、左側のパイプラインが成功した場合に、右側のパイプラインを実行します。 逆に、|| 演算子は、左側のパイプラインが失敗した場合に右側のパイプラインを実行します。

これらの演算子は、$? 変数と $LASTEXITCODE 変数を使用して、パイプラインが失敗したかどうかを判断します。 これにより、コマンドレットや関数だけでなく、ネイティブ コマンドでも使用できます。

ここで最初のコマンドが成功し、2番目のコマンドが実行されます:

Write-Output 'First' && Write-Output 'Second'
First
Second

ここでは最初のコマンドが失敗し、2つ目のコマンドは実行されません:

Write-Error 'Bad' && Write-Output 'Second'
Write-Error: Bad

ここでは最初のコマンドは成功し、2番目のコマンドは実行されません:

Write-Output 'First' || Write-Output 'Second'
First

ここでは最初のコマンドが失敗するため、2番目のコマンドが実行されます:

Write-Error 'Bad' || Write-Output 'Second'
Write-Error 'Bad'
Second

パイプラインチェーンオペレーターに関する詳細情報はこちら。

ヌルコアレシング、割り当て、条件付き演算子

PowerShell 7にはNull Coalescing operator ??、Null 条件付き割り当て ??=、Null 条件付きメンバーアクセスオペレータ ?. および ?[] が含まれています。

ヌルコイレッシング演算子 ??

ヌルコアレシング演算子は、左のオペランドがnullでなければ値を返 ?? 。 それ以外の場合は、右側のオペランドを評価し、その結果を返します。 左側のオペランドが null 以外と評価される場合、?? 演算子は右側のオペランドを評価しません。

$x = $null
$x ?? 100
100

以下の例では、右手のオペランドは評価されません。

[string] $todaysDate = '1/10/2020'
$todaysDate ?? (Get-Date).ToShortDateString()
1/10/2020

ヌル条件付き割り当て演算子??=

ヌル条件付き割り当て演算子は ??= 、左オペランドがヌルに値する場合にのみ、右オペランドの値を左オペランドに割り当てます。 左側のオペランドが null 以外と評価される場合、??= 演算子は右側のオペランドを評価しません。

$x = $null
$x ??= 100
$x
100

以下の例では、右手のオペランドは評価されません:

[string] $todaysDate = '1/10/2020'
$todaysDate ??= (Get-Date).ToShortDateString()
1/10/2020

ヌル条件付きメンバーアクセス演算子? そして。[](実験的)

これは PSNullConditionalOperatorsという実験的な特徴です。 詳細については 「実験的特徴の利用」を参照してください。

null条件演算子は、そのオペランドが非nullに値する場合に限り、メンバーのアクセス、 ?.、または要素 ?[]へのアクセスを許可します。そうでなければ、nullを返します。

PowerShell では ? 変数名の一部を使用できるため、これらの演算子を使用するには変数名の正式な指定が必要です。 つまり、変数名の${a}や変数名${a?}に含まれる?など、{}を使う必要があります。

以下の例では、メンバープロパティ Status の値が返されます:

$Service = Get-Service -Name 'bits'
${Service}?.status
Stopped

以下の例は、メンバー名 Statusへのアクセスを試みることなくnullを返します:

$service = $Null
${Service}?.status

同様に、 ?[]を用いると、要素の値を返します:

$a = 1..10
${a}?[0]
1

そしてオペランドがnullの場合、その要素はアクセスされずnullが返されます:

$a = $null
${a}?[0]

詳細については About_Operators

新しいビュー ConciseView とコマンドレット Get-Error

PowerShell 7.0は、新しいデフォルト ビューConciseViewでエラーメッセージの表示を強化し、インタラクティブエラーやスクリプトエラーの可読性を向上させます。 ビューは、プリファレンス変数 $ErrorViewを通じてユーザーが選択可能です。

ConciseViewでは、エラーがスクリプトやパーサーのエラーでない場合、1行のエラーメッセージが表示されます。

Get-Childitem -Path c:\NotReal
Get-ChildItem: can't find path 'C:\NotReal' because it doesn't exist

スクリプト実行中にエラーが発生したり、解析エラーであれば、PowerShellはエラーを含む多行エラーメッセージ、ポインタ、そしてエラーの所在を示すエラーメッセージを返します。 端末がANSIカラーエスケープシーケンス(VT100)をサポートしていない場合、色は表示されません。

スクリプトからのエラー表示

PowerShell 7のデフォルト表示は ConciseViewです。 以前のデフォルトビューは NormalView で、好み変数を $ErrorView設定することで選択できます。

$ErrorView = 'NormalView' # Sets the error view to NormalView
$ErrorView = 'ConciseView' # Sets the error view to ConciseView

エラーメッセージのアクセントカラーを変更するために、$Host.PrivateDataに新しいプロパティErrorAccentColorが追加されました。

新しいコマンドレット Get-Error は、必要に応じて完全修辞誤差の詳細なビューを提供します。 デフォルトでは、コマンドレットは最後に発生したエラーの詳細な詳細を含め、内部例外を表示します。

Get-Errorによる表示

Get-Errorコマンドレットは、内蔵の変数$Errorを使ってパイプラインからの入力をサポートしています。 Get-Error すべてのパイプエラーを表示します。

$Error | Get-Error

Get-Errorコマンドレットは最新パラメータをサポートしており、現在のセッションから表示したいエラー数を指定できます。

Get-Error -Newest 3 # Displays the lst three errors that occurred in the session

Get-Errorの詳細については、

新バージョン通知

PowerShell 7は、PowerShellの更新通知をユーザーに通知します。 1 日に 1 回、PowerShell はオンライン サービスに対してクエリを実行して、新しいバージョンが使用可能かどうかを判断します。

更新チェックは、24時間の期間内の最初のセッション中に行われます。 パフォーマンスの理由から、更新チェックはセッション開始から3秒後に始まります。 通知はその後のセッション開始時にのみ表示されます。

デフォルトでは、PowerShellはバージョンやブランチによって2つの通知チャネルのいずれかに加入します。 サポートされた一般利用可能(GA)バージョンのPowerShellは、更新されたGAリリースのみの通知を返します。 プレビューおよびリリース候補(RC)リリースは、プレビュー、RC、GAリリースの更新を通知します。

更新通知の動作は、$Env:POWERSHELL_UPDATECHECK 環境変数を使用して変更できます。 次の値がサポートされています。

  • デフォルトは 定義しないのと同じです $Env:POWERSHELL_UPDATECHECK
    • GA リリースでは、GA リリースに対する更新プログラムが通知されます
    • プレビュー/RC リリースは、GA リリースやプレビュー リリースの更新情報を通知します
  • Offは 更新通知機能をオフにします
  • LTS は長期サービス(LTS)GAリリースの更新のみを通知します

環境変数 $Env:POWERSHELL_UPDATECHECK は初めて設定されるまで存在しません。

LTSリリースのみのバージョン通知を設定するには:

$Env:POWERSHELL_UPDATECHECK = 'LTS'

バージョン通知を Default 動作に設定するには:

$Env:POWERSHELL_UPDATECHECK = 'Default'

更新通知に関する詳細情報はこちらをご覧ください

Invoke-DSCResource(実験的)による新しいDSCリソースサポート

これは PSDesiredStateConfiguration.InvokeDscResourceという実験的な機能です。 詳細については 「実験的特徴の利用」を参照してください。

Invoke-DscResourceコマンドレットは、指定されたPowerShellの望ましい状態構成(DSC)リソースのメソッドを実行します。

このコマンドレットは設定ドキュメントを作成することなく、DSCリソースを直接呼び出します。 このコマンドレットを用いて、構成管理製品はDSCリソースを使ってWindowsやLinuxを管理できます。 このコマンドレットは、DSCエンジンがデバッグを有効にしているときにリソースのデバッグも可能にします。

このコマンドはWindowsProcessというリソースのSetメソッドを呼び出し、指定されたWindowsプロセスを起動するための必須のPath and Argumentsプロパティを提供します。

Invoke-DscResource -Name WindowsProcess -Method Set -ModuleName PSDesiredStateConfiguration -Property @{
  Path = 'C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe'
  Arguments = ''
}

Invoke-DSCResourceの詳細については、

変更点と改善点

重大な変更

  • 通知更新、LTSとデフォルトチャンネル(#11132)
  • Windows PowerShell(#10697)のアップデート Test-Connection にしてください(ありがとうございます) @vexx32!)
  • 保存米ドル? ParenExpression、SubExpression、ArrayExpression(#11040)について
  • Start-Job のワーキングディレクトリを現在のディレクトリに設定してください(#10920)(ありがとうございます) @iSazonov!)
  • セッション中の文化の変化を一貫$PSCulture反映させる(#10138)(ありがとうございます) @iSazonov!)

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

  • リモートシナリオ向けのブレークポイントAPIの改善(#11312)
  • PowerShellクラス定義が別のランスペース(#11273)に漏れてしまう問題を修正してください
  • 7.0.0-Preview1(#11258)に追加されたFirstOrDefaultプリミティブによるフォーマットの回帰を修正してください
  • PS7テレメトリーで追跡する追加のMicrosoftモジュール(#10751)
  • 承認された機能を非実験的にする(#11303)
  • 該当する場合はTargetObjectを使用するようにConciseViewを更新します(#11075)
  • CompletionCompleters公開メソッド(#11274)におけるNullReferenceExceptionの修正
  • 非Windowsプラットフォームでのアパートスレッドの状態チェックを修正(#11301)
  • プロセスとマシン環境変数を連結する設定PSModulePathの更新(#11276)
  • .NET Core を 3.1.0 (#11260) にアップ
  • $env:PATH (#11141) 前方の$PSHOME検出を修正
  • pwshが$env:PSModulePathを継承し、powershell.exe が正しく起動できるようにします(#11057)
  • .NET Core 3.1プレビュー1(#10798)への移行
  • ファイルシステムプロバイダーでのリファクタ解析タグチェック(#10431)(ありがとう) @iSazonov!)
  • スクリプトログ(#10616)でCRと新行を0x23CE文字に置き換える
  • AppDomain.CurrentDomain.ProcessExit (#10626)からイベントハンドラを登録解除することでリソースリークを修正します
  • Debug、Error、Information、Progress、Verbose、Warning メッセージが生成されたときにデバッガーに侵入するためのActionPreference.Breakのサポートを追加してください(#8205)(ありがとうございます) @KirkMunro!)
  • PowerShell内で起動するコントロールパネルのアドインを有効にし、拡張機能を指定せずに有効.CPL。 (#9828)
  • -split 演算子(#8960)で負の数をサポートしてください(ありがとうございます) @ece-jacob-scott!)

一般的なコマンドレットの更新と修正

  • UnixStat Experimental Feature(#11313)でファイル変更日を設定する際の問題修正
  • -AsPlainText を ConvertFrom-SecureString に追加(#11142)
  • WinCompat(#11148)のWindowsPSバージョンチェックを追加
  • 一部のWinコンパットシナリオにおけるエラー報告の修正(#11259)
  • ネイティブのバイナリゾルバ(#11032)を追加してください(ありがとうございます) @iSazonov!)
  • CJK文字を正しく尊重するための文字幅の計算更新(#11262)
  • macOS(#11137)用の Unblock-File を追加してください
  • 回帰を Get-PSCallStack で修正してください(#11210)(ありがとうございます) @iSazonov!)
  • Job コマンドレット(#11194)を使用する際のScheduledJobモジュールの自動読み込みを削除してください
  • コマンドレットにOutputTypeを追加し、元のタイプ名(#10856)を保持 Get-Error
  • SupportsVirtualTerminalプロパティ(#11105)のnull参照を修正してください
  • Get-WinEvent(#10648)でリミットチェックを追加してください(ありがとうございます) @iSazonov!)
  • StopUpStreamCommandsExceptionが -ErrorVariable に入力されないようにコマンドランタイムを修正してください(#10840)
  • ネイティブコマンド用に出力エンコーディングを[Console]::OutputEncoding(#10824)に設定します。
  • 例で複数行コードブロックをサポートする(#10776)(ありがとう) @Greg-Smulko!)
  • Select-String コマンドレットにCultureパラメータを追加してください(#10943)(ありがとうございます) @iSazonov!)
  • 後ろにバックスラッシュ Start-Job 動作するディレクトリパスを修正(#11041)
  • ConvertFrom-Json:コレクションをデフォルトで展開する(#10861)(ありがとうございます) @danstur!)
  • -CaseSensitive および -AsHashtable スイッチで Group-Object コマンドレットに大文字を区別したハッシュテーブルを使用(#11030)(ありがとう) @vexx32!)
  • 正しいケーシングを保つためにパスを再構築する際にファイルの列挙が失敗した場合の例外処理(#11014)
  • myCommandの代わりにActivityを表示するConciseViewを修正する(#11007)
  • ウェブコマンドレットがHTTPエラーステータスを無視できるように(#10466)(ありがとう) @vdamewood!)
  • 複数のCommandInfoが Get-Command に配管される問題を修正する(#10929)
  • Windows コマンドレット Get-Counter 戻す (#10933)
  • [AutomationNull]::Valueと[NullString]::Valueを$nullとして扱 ConvertTo-Json(#10957)
  • SSHリモート用にipv6アドレスの括弧を外す(#10968)
  • PWSHに送るコマンドが空白だけの場合のクラッシュ修正(#10977)
  • クロスプラットフォーム Get-Clipboard と Set-Clipboard が追加されました(#10340)
  • ファイルシステムオブジェクトの元のパスを余分な後ろスラッシュに設定しない修正(#10959)
  • ConvertTo-Json サポート・$null(#10947)
  • Windowsでコマンド Out-Printer 戻す(#10906)
  • 空白で Start-Job -WorkingDirectory を修正(#10951)
  • PSConfiguration.cs(#10963)で設定のnullを取得する際にデフォルト値を返す(ありがとうございます) @iSazonov!)
  • 非終了例として扱う(#10950)
  • Out-GridView、Show-Command、Get-Help -ShowWindow を有効にするためにGraphicalHostアセンブリを追加してください(#10899)
  • ComputerNameはパイプライン経由で Get-HotFix(#10852)で取得してください(ありがとうございます) @kvprasoon!)
  • パラメータのタブ補完を修正し、利用可能な共通パラメータを表示するようにします(#10850)
  • GetCorrectCasedPath() を修正し、First() (#10930)を呼び出す前にシステムファイルのエントリが返っていないか確認します。
  • Start-Job のワーキングディレクトリを現在のディレクトリに設定してください(#10920)(ありがとうございます) @iSazonov!)
  • TabExpansion2を、-CursorColumn を不要にし、$InputScript.Lengthとして扱うように変更してください(#10849)
  • ホストが画面の行や列を返せない場合の対応(#10938)
  • アクセントカラーをサポートしないホストのアクセントカラー使用修正(#10937)
  • コマンド Update-List 戻す(#10922)
  • Clear-RecycleBin のFWLink ID更新 (#10925)
  • タブの完了時にファイル属性が読み取れない場合はスキップしてください(#10910)
  • Windows Clear-RecycleBin を戻す (#10909)
  • 出力にVTエスケープシーケンスを持たせるかどうかを制御するための $env:__SuppressAnsiEscapeSequences を追加(#10814)
  • 出力 Select-String -NoEmphasize 色付けするパラメータを追加してください(#8963)(ありがとうございます) @derek-xia!)
  • コマンドレット(#10740)を戻 Get-HotFix 追加
  • PowerShellをホストするアプリケーションで Add-Type を使いやすくする(#10587)
  • LanguagePrimitives.IsNullLike() (#10781) でより効果的な評価順序を使う (ありがとう) @vexx32!)
  • Format-Hex(#8674)における混合コレクションのパイプ入力およびパイプ入力ストリームの処理を改善する(ありがとうございます) @vexx32!)
  • 値が期待値(#10720)と一致しない場合は、SSHConnectionのハッシュテーブルでタイプ変換を使ってください(ありがとうございます) @SeeminglyScience!)
  • -TotalCount 設定 Get-Content -ReadCount 0の動作を修正してください(#10749)(ありがとうございます) @eugenesmlv!)
  • Rewordアクセス拒否のエラーメッセージが Get-WinEvent(#10639)(ありがとうございます) @iSazonov!)
  • enumまたは型制約のある変数割り当てのタブ補完を有効にする(#10646)
  • フォーマットの問題を引き起こす未使用のSourceLengthリモートプロパティを削除する(#10765)
  • パラメータ -Delimiter ConvertFrom-StringData に追加してください(#10665)(ありがとうございます) @steviecoaster!)
  • SSHで Invoke-Command を使う際のScriptBlockの位置パラメータを追加してください(#10721)(ありがとう) @machgo!)
  • 複数行の場合は行のコンテキスト情報を表示しますが、ConciseView(#10746)のスクリプト名は表示しません。
  • ファイルシステムプロバイダーへの \wsl$\ パスのサポートを追加(#10674)
  • パーサー(#10706)でTokenKind.QuestionMarkの欠落トークンテキストを追加してください。
  • 各 ForEach-Object -Parallel 実行中のスクリプトの現在のワーキングディレクトリを呼び出しスクリプトと同じ場所に設定します。 (#10672)
  • FindFirstStreamWおよびFindNextStreamW APIのAPIを api-ms-win-core-file-l1-2-2.dll Kernell32.dll に置き換えてください(#10680)(ありがとうございます) @iSazonov!)
  • スクリプトのフォーマット調整をStrictModeに対応させるための調整(#10563)
  • -SecurityDescriptorSDDL パラメータを New-Service に追加してください(#10483)(ありがとうございます) @kvprasoon!)
  • 情報出力を削除し、ping使用を Test-Connection に統合してください(#10478)(ありがとうございます) @vexx32!)
  • アクセスせずに特別なリパースポイントを読み取る(#10662)(ありがとう) @iSazonov!)
  • 端子への直接 Clear-Host 出力(#10681)(ありがとうございます) @iSazonov!)
  • Format-Table と -Property(#10653)とグループ化するために、改行線を戻してください
  • 空文字列を許可するために Get-Random -InputObject から[ValidateNotNullOrEmpty]を削除してください(#10644)
  • Make suggestion system string distance algorithm case-insensitive (#10549)(ありがとう) @iSazonov!)
  • ForEach-Object -Parallel 入力処理におけるヌル参照例外の修正(#10577)
  • Add PowerShell group policy definitions (#10468)
  • コンソールホストを、コンポーザビリティシナリオで使用されるXTPUSHSGR/XTPOPSGR VTコントロールシーケンスをサポートするよう更新してください。 (#10208)
  • WorkingDirectoryパラメータを Start-Job に追加してください(#10324)(ありがとうございます) @davinci26!)
  • ブレークポイントの変更を誤ってホストのランスペースデバッガーに複製させていたイベントハンドラ(#10503)を削除してください(ありがとうございます) @KirkMunro!)
  • Microsoft.PowerShell.Commands.NativeMethods p/Invoke API(#10417)で api-ms-win-core-job-12-1-0.dll を Kernell32.dll に置き換えてください(ありがとうございます) @iSazonov!)
  • 変数割り当てと -OutVariable の New-Service 出力の誤りを修正してください(#10444)(ありがとうございます) @kvprasoon!)
  • 出口コード、コマンドラインパラメータ、スペース付きパスに関するグローバルツールの問題を修正(#10461)
  • OneDriveへの再帰を修正 - FindFirstFileEx()をSafeFindHandle型(#10405)に変更
  • NVDAスクリーンリーダーが有効であれば、WindowsでPSReadLineの自動読み込みをスキップしてください(#10385)
  • PowerShellでビルドされたモジュールバージョンを7.0.0.0(#10356)に増強
  • 同じ名前の型がすでに存在する場合はエラーを Add-Type に入れます(#9609)(ありがとうございます) @iSazonov!)

Performance

  • Parser.SaveError (#11006)でのクロージャーの使用は避けてください
  • 新しい正述式インスタンスを作成する際のキャッシュ改善(#10657)(ありがとうございます) @iSazonov!)
  • types.ps1xml、typesV3.ps1xml、GetEvent.types.ps1xml(#10898)からのPowerShell組み込み型データの処理を改善する
  • PSConfiguration.ReadValueFromFileを更新して、より高速かつメモリ効率を高める(#10839)
  • ランスペース初期化のためのマイナーなパフォーマンス改善を追加してください(#10569)(ありがとうございます) @iSazonov!)
  • よく使われるシナリオで高速化(#10454)ForEach-Object 多くのランスペース ForEach-Object -Parallel パフォーマンス問題を修正する(#10455)

コードのクリーンアップ

  • Microsoft標準に適合するようにコメントと要素のテキストを変更する(#11304)
  • Compiler.cs(#10368)でのクリーンアップスタイルの問題(ありがとうございます) @iSazonov!)
  • CommaDelimitedStringCollection(#11000)用の未使用タイプコンバーターを削除してください(ありがとうございます) @iSazonov!)
  • InitialSessionState.csのクリーンアップスタイル(#10865)(ありがとうございます) @iSazonov!)
  • PSSessionクラス(#11001)のコードクリーンアップ
  • 動作しない「Get-Help が初めて実行したときに Get-Help から Update-Help を実行する」機能(#10974)を削除してください
  • スタイルの問題を修正してください(#10998)(ありがとうございます) @iSazonov!)
  • クリーンアップ:組み込みのタイプエイリアス(#10882)を使用してください(ありがとうございます) @iSazonov!)
  • 未使用の設定キーConsolePromptingを削除し、ExecutionPolicy設定(#10985)を問い合わせる際の不要な文字列作成を避けてください。
  • デイリービルドの更新通知チェックを無効にしてください(#10903)(ありがとうございます) @bergmeister!)
  • #10338(#10808)で失われたデバッグAPIの再復原
  • 使われていないWorkflowJobSourceAdapterの参照(#10326)を削除してください(ありがとうございます) @KirkMunro!)
  • ジャンプリストコード内のCOMインターフェースをPreserveSig属性修正(#9899)でクリーンアップします(ありがとうございます) @weltkante!)
  • なぜ -ia が一般的なパラメータ(#10703)のエイリアスでないのかを説明するコメントを追加してください -InformationAction(ありがとうございます) @KirkMunro!)
  • InvokeCommandCmdlet.csをInvokeExpressionCommand.cs(#10659)にリネームしてください(ありがとうございます) @kilasuit!)
  • 更新通知に関連する軽微なコードクリーンアップを追加(#10698)
  • リモートセットアップスクリプト(#10320)から非推奨のワークフローロジックを削除してください(ありがとうございます) @KirkMunro!)
  • 適切な大文字を使うためのヘルプフォーマットを更新してください(#10678)(ありがとうございます) @tnieto88!)
  • 過去1ヶ月間(#10591)のコミットで入ってきているCodeFactorスタイルの問題をクリーンアップします(ありがとうございます) @iSazonov!)
  • PSTernaryOperator実験機能(#10586)の説明におけるタイプミスを修正してください(ありがとうございます) @bergmeister!)
  • ActionPreference.をStateでない保留状態に一時停止し、ActionPreference.Ignoreの使用制限をプリファレンス変数(#10317)に変換します(ありがとうございます) @KirkMunro!)
  • ArrayListをList<T> に置き換えて、機能を変えずにより読みやすく信頼性の高いコードを得てください(#10333)(ありがとうございます) @iSazonov!)
  • TestConnectionCommand (#10439) のコードスタイル修正をしてください(ありがとうございます) @vexx32!)
  • Cleanup AutomationEngineを使い、余分なSetSessionStateDriveメソッド呼び出し(#10416)を削除してください(ありがとうございます) @iSazonov!)
  • デフォルトのParameterSetNameを ConvertTo-Csv と ConvertFrom-Csv のためにDelimiterに戻す(#10425)

Tools

  • SDKToUse プロパティのデフォルト設定を追加して、VS(#11085)でビルドできるようにします。
  • Install-Powershell.ps1: MSIインストール使用パラメータを追加(#10921)(ありがとうございます) @MJECloud!)
  • install-powershell.ps1(#10914)の基本的な例を追加してください(ありがとうございます) @kilasuit!)
  • PowerShellHomeパラメータ(#10526)で空文字列を処理 Install-PowerShellRemoting.ps1 にしてください(ありがとうございます) @Orca88!)
  • install-powershell.sh(#10773)で/etc/lsb-releaseから/etc/os-releaseに切り替えてください(ありがとうございます) @Himura2la!)
  • Windowsのデイリーバージョン(#10738)で pwsh.exe とpwshをチェックしてください(ありがとうございます) @centreboard!)
  • installpsh-osx.sh で不要なタップを除去する(#10752)
  • すでにインストールされているデイリービルド(#10489)を確認するために install-powershell.ps1 を更新してください

テスト

  • 信頼性の低いDSCテストを保留中(#11131)
  • ハッシュテーブルのキーを正しく検証するためのFix stringdata test(#10810)
  • アンロードテストモジュール(#11061)(ありがとう) @iSazonov!)
  • テストURLの再試行間隔が長くなる(#11015)
  • テストを更新して、テストの動作を正確に記述してください。 (#10928)(ありがとうございます @romero126!)
  • 一時的にスキップした flaky test TestAppDomainProcessExitEvenHandlerNotLeaking (#10827)
  • イベントハンドラのリーキングテストを安定化(#10790)
  • CI YAMLの同期大文字(#10767)(ありがとうございます) @RDIL!)
  • イベントハンドラのリーク修正(#10768)テストを追加
  • テスト Get-ChildItem 追加(#10507)(ありがとうございます) @iSazonov!)
  • 曖昧な表現を「パラメータ」から「パラメータ」に置き換える(#10666)(ありがとうございます) @romero126!)
  • ForEach-Object -Parallel テストに実験チェックを追加してください(#10354)(ありがとうございます) @KirkMunro!)
  • Alpine検証のテスト更新(#10428)

ビルドとパッケージの改善

  • コーディネートパッケージビルド(#11316)におけるNugetパッケージ署名の修正
  • PowerShell GalleryとNuGet (#11323)からの依存関係の更新
  • Microsoft.ApplicationInsights を 2.11.0 から 2.12.0 (#11305) へ バンプ
  • Microsoft.CodeAnalysis.CSharpを3.3.1から3.4.0(#11265)にバンプ
  • Debian 10および11(#11236)のアップデートパッケージ
  • RC(#11162)以前の実験機能のみを有効にする
  • macOSの最低バージョン(#11163)を更新してください
  • NJsonSchemaを10.0.27から10.0.28へ(#11170)へバンプ
  • プレビュー.5(#10854)のリンクを更新しています。README.md および metadata.json のリンクを更新中です。
  • PowerShell(#10837)が所有するコンプライアンステストのファイルを選択してください。
  • win7x86 msix パッケージのビルドを許可してください。 (内部10515)
  • NormalizeVersion関数(#11087)にセマンティックバージョンを渡すことを許可します。
  • .NET core framework を 3.1-preview.3 (#11079) へ Bump
  • /src/Modules(#11078)でPSReadLineを2.0.0-beta5から2.0.0-beta6にアップ
  • Newtonsoft.Jsonを12.0.2から12.0.3(#11037)(#11038)へバンプしました。
  • Debian 10、11、CentOS 8パッケージ(#11028)を追加
  • ReleaseDateフィールド(#10986)を含むJsonファイルをアップロード Build-Info
  • .NET コアフレームワークを3.1-preview.2(#10993)にバンプ
  • x86 MSIXパッケージ(#10934)のビルドを有効にする
  • build.psm1(#10927)のdotnet SDKインストールスクリプトURLを更新してください
  • マークディグのバンプ。0.17.1から0.18.0へ署名(#10887)
  • Bump ThreadJob 2.0.1から2.0.2へ (#10886)
  • MS Storeの要件に準拠するためにAppXマニフェストおよびパッケージモジュールを更新(#10878)
  • PowerShell SDK のパッケージ参照をpreview.5(Internal 10295)に更新
  • 更新 ThirdPartyNotices.txt(#10834)
  • Bump Microsoft.PowerShell.Native to 7.0.0-preview.3 (#10826)
  • Microsoft.ApplicationInsights を 2.10.0 から 2.11.0 (#10608) へ バンプ
  • NJsonSchemaを10.0.24から10.0.27へ (#10756)
  • ビルドシステムにMacPortsのサポートを追加してください(#10736)(ありがとうございます) @Lucius-Q-User!)
  • 1.4.4から1.4.5へのバンプパッケージ管理(#10728)
  • NJsonSchemaを10.0.23から10.0.24へ(#10635)へバンプ
  • MSIでクライアント/サーバーテレメトリを区別するための環境変数を追加(#10612)
  • PSDesiredStateConfiguration を 2.0.3 から 2.0.4 (#10603) にバンプ
  • Microsoft.CodeAnalysis.CSharpを3.2.1から3.3.1(#10607)にアップ
  • .Net Core 3.0 RTM(#10604)へのアップデート(ありがとうございます) @bergmeister!)
  • MSIXパッケージをWindowsストアの要件に合わせて更新します(#10588)
  • PowerShellGet バージョンを2.2から2.2.1へ (#10382)
  • Bump PackageManagement バージョン 1.4.3 から 1.4.4 へ(#10383)
  • 7.0.0-preview.4(内部10011)のアップデート README.md と metadata.json
  • .Net Core 3.0のバージョンをPreview 9からRC1(#10552)にアップグレードしてください(ありがとうございます) @bergmeister!)
  • ExperimentalFeature リスト生成の修正(Internal 9996)
  • PSReadLineバージョンを2.0.0-beta4から2.0.0-beta5(#10536)にアップ
  • リリースビルドスクリプトをセットリリースタグに修正してください
  • Microsoft.PowerShell.Native の更新バージョンを 7.0.0-preview.2 (#10519)
  • Netcoreapp3.0 preview9(#10484)へのアップグレード(ありがとうございます) @bergmeister!)
  • デイリーのコーディネートビルドがデイリービルドであることを認識させてください(#10464)。
  • 結合パッケージビルドを更新して、デイリービルド(#10449)をリリースしてください
  • appveyorの参照(#10445)を削除してください(ありがとうございます) @RDIL!)
  • NJsonSchemaのバージョンを10.0.22から10.0.23(#10421)にバンプ
  • Linux-x64ビルドフォルダの削除を削除してください。Alpineの一部の依存関係で削除が必要なため(#10407)

ドキュメントとヘルプコンテンツ

  • ログを1つのリリースごとに1つのログにリファクタリングします(#11165)
  • PowerShell 7用FWLinksのオンラインヘルプ文書(#11071)を修正する方法
  • アップデート CONTRIBUTING.md(#11096)(ありがとうございます) @mklement0!)
  • README.md(#11083)のインストールドキュメントリンクを修正してください
  • スクリプト(#11024)に例を追加 install-powershell.ps1(ありがとう) @kilasuit!)
  • CHANGELOG.md(#10890)で Select-String 強調と Import-DscResource の修正
  • powershell-beginners-guide.md(#10926)から古くなったリンクを削除してください
  • 安定とサービス変更ログのマージ(#10527)
  • ビルドドキュメントで.NETバージョンを更新しました(#10775)(ありがとうございます) @Greg-Smulko!)
  • MSDNからMicrosoft Learnへのリンクを powershell-beginners-guide.md(#10778)で置き換えてください(ありがとうございます) @iSazonov!)
  • 壊れたDSCの概要リンク(#10702)を修正してください
  • Support_Question.mdを更新して、Stack Overflowへのリンクを別のコミュニティリソースとして(#10638)(ありがとうございます) @mklement0!)
  • 配布リクエストテンプレートにプロセッサアーキテクチャを追加する(#10661)
  • PowerShellの学習ドキュメントに新しいPowerShell MoLの書籍を追加しよう (#10602)
  • バージョン6.1.6およびバージョン6.2.3リリース(#10523)の更新 README.md とメタデータ
  • README.md(#10465)のタイプミスを直してください(ありがとうございます) @vedhasp!)
  • PSKoansモジュールへの参照をLearning Resources documentation(#10369)に追加してください(ありがとうございます) @vexx32!)
  • 7.0.0-preview.3(#10393)のアップデート README.md と metadata.json