Type Accelerators

PowerShell Core 6.1には新しく次のType Acceleratorが追加された。ただし、このType AcceleratorはWindowsプラットフォームでのみ機能する。マルチプラットフォームで動作するスクリプトを組む場合にはこれらType Acceleratorを使うことはないと思う。

Type Accelerator 対象
[adsi] System.DirectoryServices.DirectoryEntry
[adsisearcher] System.DirectoryServices.DirectorySearcher
[wmi] System.Management.ManagementObject
[wmiclass] System.Management.ManagementClass
[wmisearcher] System.Management.ManagementObjectSearcher

PowerShell Core 6.1で導入されたType AcceleratorsをWindows 10で試用

Windows以外のプラットフォームでは今回導入されたType Acceleratorは使用できない

今回新しく導入されたType Acceleratorsは特にADオブジェクトやWMIオブジェクトの構築時に便利。なお、Windows以外のプラットフォームでは今回導入されたType Acceleratorは利用できず、上記スクリーンショットのようにエラーが表示される。

MSIインストールパス

PowerShwll Core 6.1からはMSIパッケージでWindowsにインストールした場合のパスが次のように変更となった。

パス 内容
$env:ProgramFiles\PowerShell\6\ 6.x系の安定版インストールパス
$env:ProgramFiles\PowerShell\6-preview\ 6.x系のプレビュー版インストールパス

この変更はPowerShell CoreをWindows Update経由でアップデートした場合でも問題なく動作するようにするためだとされている。

POWERSHELL_TELEMETRY_OPTOUT

PowerShell Coreは起動時にMicrosoftへ基本テレメトリデータを送信している。送信されているデータはオペレーティングシステム名、オペレーティングシステムバージョン、PowerShellバージョンなど。Microsoftはこうしたデータに基づいてPowerShellがどのような環境で実行されているのかを調べ、新機能やバグ修正に関する優先順位決定時のデータとして利用している。

PowerShell Core 6.1にはこのデータ送信を抑制する機能が追加された。環境変数POWERSHELL_TELEMETRY_OPTOUTをtrueまたはyesまたは1に設定すると起動時における基本テレメトリデータの送信は行わないようになる。

VisualBasic

これまでのバージョンであればAdd-Typeコマンドレットを使うことでVisual Basicコードをコンパイルすることができたが、Add-TypeコマンドレットでVisual Basicが指定されることがほとんどなかったことから、Add-Typeコマンドレットのサポート対象からVisual Basicが外された。この結果、サイズが縮小している。

cd

これまでのバージョンであればcd(またはSet-Location)でドライブ名のみを指定して移動した場合、デフォルトロケーションへの移動が行われていた。PowerShell Core 6.1からはセッションが保持している最後のワーキングディレクトリへ移動するようになった。

-lp

PowerShell Core 6.1からは-LiteralPathパラメータをもっているすべてのコマンドレットで-lpパラメータを指定可能になった。