PowerShell Core 6.2リリースは、パフォーマンス向上、バグ修正、そして品質を向上させる小さなコマンドレットや言語の強化に焦点を当てていました。 改善点の全リストを見るには、GitHubの詳細な 変更ログ をご覧ください。
試験的な機能
以前は、 実験的特徴のサポートを有効にしていました。 6.2リリースでは、試すための4つの実験的な機能があります。改善や機能の普及に値するかどうか判断するために、フィードバックをお願いします。
Get-ExperimentalFeatureを使って利用可能な実験機能のリストを取得してください。 これらの機能は Enable-ExperimentalFeature や Disable-ExperimentalFeatureで有効・無効にできます。
コマンドが見つからない提案
この機能は、誤入力したコマンドやコマンドレットの提案を見つけるためにファジィマッチングを活用します。
Enable-ExperimentalFeature -Name PSCommandNotFoundSuggestion
Example
この例では、誤った綴りのコマンドレット名が、可能性が高いものから最も可能性の低いものまでの複数の提案とぼやけ合わせされています。
Get-Commnd
Get-Commnd : The term 'Get-Commnd' is not recognized as the name of a cmdlet, function, script file,
or operable program. Check the spelling of the name, or if a path was included, verify that the path
is correct and try again.
At line:1 char:1
+ Get-Commnd
+ ~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Get-Commnd:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
Suggestion [4,General]: The most similar commands are: Get-Command, Get-Content, Get-Job, Get-Module,
Get-Event, Get-Host, Get-Member, Get-Item, Set-Content.
暗黙的リモートバッチ
パイプラインで 暗黙的リモート を利用する場合、PowerShellはパイプライン内の各コマンドを独立して扱います。 オブジェクトはパイプラインの実行中にクライアントとリモートシステム間で繰り返しシリアライズされ、 de-serialized されます。
この機能により、PowerShellはパイプラインを解析し、コマンドが安全に実行可能でターゲットシステムに存在しているかを判断します。 もしそうなった場合、PowerShellはパイプライン全体をリモートで実行し、結果をシリアライズしてクライアントに de-serializes します。
Enable-ExperimentalFeature -Name PSImplicitRemotingBatching
ローカルホストでの実 Get-Process | Sort-Object テストは10〜15秒から20〜30 ミリ秒に短縮されます。 この機能はクライアント側でのみ有効化すればよくなります。 サーバー上の変更は不要です。
一時的なドライブ
Enable-ExperimentalFeature -Name PSTempDrive
PowerShell Coreを異なるOSで使っている場合、一時ディレクトリを見つける環境変数がWindows、macOS、Linuxで異なることがわかるでしょう! この機能を使うと、Temp:というPSDriveが自動的に使っているOSの一時フォルダにマッピングされます。
Example
PS> "Hello World!" > Temp:/hello.txt
PS> Get-Content Temp:/hello.txt
Hello World!
Linuxのネイティブファイルコマンド( ls など)はPSDrivesを認識せず、この Temp: ドライブを認識できないことに注意してください。
略語展開
PowerShellのコマンドレットは記述的名詞を持つことが期待されます。 その結果、長く、タイプがより難しくなります。 この機能により、コマンドレットの大文字を入力するだけで、タブ補完で一致するものを見つけることができます。
Enable-ExperimentalFeature -Name PSUseAbbreviationExpansion
Example
PS> i-arsavsf
Tabキーを押してAzure PowerShell Az モジュールをインストールしていれば、以下に自動補完されます:
PS> Import-AzRecoveryServicesAsrVaultSettingsFile
注
この機能はインタラクティブに使うことを想定しています。 コマンドレットの略称は実行できません。 この機能は別名の代替ではありません。
重大な変更
- Windows PowerShell
-NoEnumerate整合性のある動作を修正Write-Output。 (#9069) - 結果
Join-String -InputObject 1,2,31,2,3 | Join-String結果(#8611)にしてください(ありがとうございます)@sethvs!) -
Sort-Objectおよび関連テストに-Stableを追加してください(#7862)(ありがとうございます)@KirkMunro!) - 分数秒
Start-Sleep受け入れられるようにコマンドレットを改良してください(#8537)(ありがとうございます) @Prototyyppi!) - すべての文化で
case-insensitiveOrdinalIgnoreCase を使うようにハッシュテーブルを変更する (#8566) -
Import-CsvのLiteralPathを出力(#8277)にGet-ChildItemバインドするよう修正してください(ありがとうございます)@iSazonov!) -
Import-Csvでダブルクォート区切り符を使うと名前のない列をスキップしなくなります(#7899)(ありがとうございます)@Topping!) -
Get-ExperimentalFeatureスイッチ-ListAvailableもはや存在しません(#8318) - デバッグパラメータは
$DebugPreferenceをInquire(#8195)ではなくContinueに設定します(ありがとうございます)@KirkMunro!) - pwsh(#8115)で使用される非インタラクティブでリダイレクト・エンコードされたコマンドで指定された場合、Honor
-OutputFormat - GAC(#8073)からロードを試みる前にモジュールベースパスからアセンブリをロードする
- Linuxプレビューパッケージからtildeを削除する (#8244)
- プロファイル処理の前に
-WorkingDirectory処理を移動する(#8079) - Unix(#7697)
PATHEXT環境変数を追加しないでください(ありがとうございます) @iSazonov!)
既知の問題
- Windows IOT ARMプラットフォームでリモート接続するとモジュールの読み込みに問題があります。 参照(#8053)
一般的なアップデートと修正
- 大文字を区別しないタブ補完を有効にする ファイルおよびフォルダー(#8128)
- PSVersionInfo.PSVersionおよびPSVersionInfo.PSEditionを公開(#8054)にしてください(ありがとうございます) @KirkMunro!)
-
catch{ }ブロックでタイプ推論を追加$_/$PSItem(#8020)(ありがとう)@vexx32!) - 静的メソッド呼び出しタイプの推論(#8018)を修正してください(ありがとうございます) @SeeminglyScience!)
-
Select-Object、Group-Object、PSObject、ハッシュテーブル(#7231)の推論型を作成してください(ありがとうございます)。@powercode!) -
ByRef-like型パラメータ(#7721)で呼び出しメソッドのサポート - Windows PowerShellモジュールパスがすでに環境のPSModulePath(#7727)にある場合を扱います。
- 非Windows向けにプレーンテキストを保存することで
SecureStringコマンドレットを有効にする (#9199) - securestring(#7997)でclixmlをインポートする際の非Windowsでのエラーメッセージ改善
- パラメータReplyToを
Send-MailMessageに追加します(#8727)(ありがとうございます) @replicaJunction!) -
Send-MailMessageに廃止メッセージを追加(#9178) - WinRMが存在しない
Restart-Computerでlocalhost動作させる修正(#9160) - PowerShell
Start-Jobホスティング中に終了エラーを出すようにします(#9128) - ushort、uint、ulong、shortのリテラルにC#スタイルのアクセラレータと接尾辞を追加してください(#7813)(ありがとう) @vexx32!)
- 数値リテラルに新しい接尾辞を追加しました - about_Numeric_Literals (#7901) を参照(ありがとうございます) @vexx32!)
- SupportsShouldProcess が「true」に設定されていない場合に影響レベルを正しく報告する(#8209)(ありがとうございます) @vexx32!)
- ウェブコマンドレットのリクエストキャラクターセット問題を修正(#8742)(ありがとうございます) @markekraus!)
- ウェブコマンドレットの問題を修正
100-continueExpect (#8679)(ありがとう) @markekraus!) - ウェブコマンドレット(#7676)のファイルブロック問題を修正します(ありがとうございます) @Claustn!)
-
Invoke-RestMethodのコードページ解析の問題を修正してください(#8694)(ありがとうございます)@markekraus!) - Refactor
ConvertTo-Jsonto expose JsonObject.ConvertToJson as a public API (#8682) - -Depth(#8199)で
ConvertFrom-Jsonで最大深度を設定できます(ありがとうございます) @louistio!) - コマンドレット(#7775)にEscapeHandleパラメータを追加してください
ConvertTo-Json(ありがとうございます) @iSazonov!) - pwshに
-CustomPipeNameを加えてEnter-PSHostProcess(#8889) - Windows上で
New-Item(#8783)で相対シンボリックリンクを作成可能にする - 開発者モードでWindowsユーザーが標高なしでシンムリンクを作成できるように(#8534)
-
$nullを受け入れるためにWrite-Informationを有効にする(#8774) - MAMLヘルプコンテンツによる高度な関数の修正
Get-Help(#8353) - パラメータ
Get-Help1つだけ宣言されたときのPSType -Parameter Nameの問題を修正してください(#8754)(ありがとうございます) @pougetat!) - ScriptBlock上で実行された
Get-Helpトークン計算の修正をコメントの助けとして提供しています。 (#8238)(ありがとうございます @hubuk!) - コマンドレット
Get-Helpパラメータ -Parameter 文字列配列を受け入れるように変更してください(#8454)(ありがとうございます) @sethvs!) - パスにスペースが含まれている場合(#8571)を解決してください(ありがとうございます) @pougetat!)
- 「help」機能に「
lessの使用にプロンプトを追加して、ユーザーに終了方法を指示します(#7998) - コマンドレット(#8191)でサポートエナムとキャラタイプ
Format-Hex追加してください(ありがとうございます) @iSazonov!) -
Format-HexからShouldProcessを削除してください(#8178) - 新しいOffsetとCountパラメータを
Format-Hexに追加し、コマンドレット(#7877)をリファクタリングしてください(ありがとうございます) @iSazonov!) -
ConvertTo-Htmlの「label」の別名キーとして「name」を認め、「width」エントリを整数(#8426)にしてください(ありがとうございます)@mklement0!) - スクリプトブロックベースの計算プロパティを
ConvertTo-Html(#8427)で再び動作させることができます(ありがとうございます) @mklement0!) - パイプライン入力からテキストを作成するためのcmdlet
Join-Stringを追加してください(#7660)(ありがとうございます) @powercode!) - コマンドレット
Join-StringFormatStringパラメータロジックを修正してください(#8449)(ありがとうございます) @sethvs!) - リモート
Clear-Hostではなく$RAWUIとクリア・トゥ・ワークに戻す (#8609) -
Clear-Hostを単に「[console]::clear」と呼び、Unix(#8603)からクリアエイリアスを削除してください。 -
Import-CsvのLiteralPathを出力(#8277)にバインドするGet-ChildItem修正してください(ありがとうございます)@iSazonov!) - ヘルプ機能はAliasHelpInfo(#8552)でページャーを使うべきではありません
- トランスクリプトヘッダーを最小化するために
Start-Transcript-UseMinimalHeaderを追加してください(#8402)(ありがとうございます)@lukexjeremy!) -
Enable-ExperimentalFeatureとDisable-ExperimentalFeatureコマンドレットを追加(#8318) - PSDiagnosticsから利用可能なすべてのコマンドレットを公開してください(#8366 logman.exe
-
non-Windowsプラットフォーム(#8291)でPersistパラメータをNew-PSDriveから削除してください(ありがとうございます)@lukexjeremy!) -
cd +(#7206)のサポートを追加してください(ありがとうございます)@bergmeister!) -
Set-Location -LiteralPath- と+(#8089)と名付けられたフォルダで動作させてください -
Test-Path空または$nullパス値(#8080)が与えられると返$false(ありがとう)@vexx32!) - パスがどのプロバイダーとも一致しなくても動的パラメータを返すこと(#7957)
- Unixプラットフォームでの
Get-PSHostProcessInfoおよびEnter-PSHostProcessのサポート(#8232) -
Get-Contentコマンドレット(#8103)での割り当てを減らしてください(ありがとうございます)@iSazonov!) - コンテンツ作成中に他のツールと読書アクセスを共有することができる
Add-Content(#8091) -
Get/Add-Contentコンテナをターゲットにした際のエラーが改善される(#7823)(ありがとう) @kvprasoon!) -
-Name、-NoUserOverrides、-ListAvailableパラメータをGet-Cultureコマンドレット(#7702)に追加してください(ありがとうございます)@iSazonov!) - エンコーディングパラメータの補完に統一属性を追加してください。 (#7732)(ありがとうございます @ThreeFive-O!)
- エン コーディング パラメータ(#7636)に登録コードページの数値IDと名前を許可します(ありがとうございます) @iSazonov!)
- ワイルドカードキャラクター(#7398)で修正
Rename-Item -Path(ありがとう) @kwkam!) -
Start-Transcriptとファイルが存在する場合、削除せずに空のファイル(#8131)(ありがとう)@paalbra!) -
FileAccess.Read と FileShare.Read を明示的に使うオープンソースファイル
Add-Type(#7915)(ありがとう)@IISResetMe!) - 最新のWindows(#7883)で修正
Enter-PSSession -ContainerId -
NestedModules プロパティが
Test-ModuleManifest(#7859)によって必ず入力されるようにしてください -
%FケースをGet-Date-UFormatに追加してください(#7630)(ありがとうございます)@britishben!) - 依存関係のあるサービスを停止する
Set-Service -Status Stopped修正(#5525)(ありがとう) @zhenggu!)