PowerShell vs. PowerShell Core、知っておくべきこと

マイクロソフトは、2018年1月10日にPowerShell Core 6.0の一般提供を発表しました。

PowerShell Coreは、Microsoft Windowsに同梱されているコマンドラインシェルおよびスクリプト言語であるPowerShellの新しいバージョンです。

PowerShell Coreのリリースにより、PowerShellエディションの数が2に増えました。 MicrosoftのWindowsオペレーティングシステムのすべての最新バージョンと新しいPowerShellコアに統合されている10年前のPowerShellがあります。

Microsoftは、PowerShell CoreをPowerShellの進化と考えています。 前者はクロスプラットフォームアプリケーションとして利用でき、後者はWindows専用です。

PowerShell Coreのクロスプラットフォームの性質により、作成したスクリプトはサポートされているすべてのオペレーティングシステムで実行されます。 PowerShell CoreスクリプトをWindowsで記述し、サポートされているMac OS XまたはLinuxデバイスで使用できます。 ARMデバイス用の実験的な(サポートされていない)バージョンもあります。

MicrosoftはPowerShell Coreで積極的に取り組んでいます。 一方、PowerShellは、Windowsバージョンの拡張サポートと最もよく比較できる状態にあります。 MicrosoftはPowerShellに機能を追加する予定はありませんが、重要なバグ修正とセキュリティ更新プログラムをリリースします。

ただし、現在、Windows PowerShellに新しい機能を導入する計画はありません。 つまり、Windows PowerShellの回帰のリスクは非常に低いため、既存のワークロードの安定したプラットフォームとして信頼できます。

PowerShell Coreは、Windowsに並行してインストールされます。 要するに、PowerShell Coreは、WindowsデバイスではWindows PowerShellに影響を与えません。

PowerShell Core 6.0は、PowerShell 5.1ほど強力ではありません。 その主な理由の1つは、PowerShellが.NET Frameworkと.NET Standardにアクセスできる一方で、PowerShellコアが機能豊富ではない.NET Coreと.NET Standardにアクセスできることです。

Windows PowerShellで利用できる一部のテクノロジは、.NET Coreではサポートされていません。 マイクロソフトは、一部のテクノロジーは将来のリリースで復活する可能性があるが、すべてのテクノロジーに当てはまるわけではないことに注意しています。

同社は、PowerShellワークフロー、PowerShellスナップイン、WMlv1コマンドレット、およびDesired State Configurationリソースの実行に特に言及しています。 PowerShell 6.0の重大な変更に関するドキュメントには、詳細が記載されています。

PowerShellとPowerShell Coreの違い

パワーシェルPowerShellコア
バージョン1.0から5.16.0
プラットフォームWindowsのみ(クライアントとサーバー)Windows、Mac OS、Linux
依存。ネットフレームワーク.Net Core
使用法.Net Frameworkランタイムに依存.Net Coreランタイムに依存
として発売powershell.exepwsh.exe(Windows)、pwsh(MacおよびLinux)
$ PSVersionTable.PSEditionデスクトップに設定コアに設定
更新ポリシー重要なバグ修正のみすべての更新(機能、バグ)

PowerShell Coreのダウンロード

  • Windows向けPowerShellコアは、このリンクから入手できます。
  • Mac OS XおよびLinux用のPowerShellコアは、このリンクから入手できます。