PowerShellとPowerShell Coreの違い

MicrosoftはPowerShell CorePowerShellの新しいバージョンをリリースしました。この新しいバージョンのPowerShellは、Windows、Linux、MacOSを含む主要なコンピューティングプラットフォームすべてで使用できます。Windowsにはすぐに使用できるPowerShell 5.1と、この最新バージョンのPowerShell Core v6.0が搭載されています。

PowerShellはMicrosoftのコマンドラインシェルとスクリプティング言語です。Windowsオペレーティングシステムに搭載されており、最初に登場したのは2006年でした。

さて、今では一般公開されているPowerShellのエディションが2つあります。1つ目はPowerShell v5.1で、2つ目は新しいPowerShell Core v6.0です。

PowerShellとPowerShell Coreの違い

最も重要な違いは、PowerShell Coreはクロスプラットフォームで、Windows、Linux、MacOSで動作するのに対し、古いものはWindowsでのみ動作するという点です。

興味があれば、PowerShell CoreをサポートされていないARMバージョンでも実行できますが、バグがあり、エラーが発生する可能性があります。

PowerShell Coreには新しい機能の更新と修正が提供されますが、古いPowerShellにはバグの修正とセキュリティの更新のみが提供されます。これは、Microsoftからの同じことについての公式な声明です。

ただし、現時点ではWindows PowerShellに新しい機能を導入する予定はありません。これは、Windows PowerShellの回帰のリスクが非常に低くなることを意味します。そのため、既存のワークロードの安定したプラットフォームとして信頼できます。

第二に、PowerShell Coreは、Windowsにすぐに搭載されているPowerShellほど強力ではありません。その理由は、新しいPowerShellは機能が限られた.NET Coreと.NET Standardを使用し、古いものは古い.NET Frameworkと.NET Standardを使用しているためです。

その理由は、.NET Coreが新しく、Microsoftが.NET Frameworkと同じくらい強力にするには時間がかかる必要があるためです。

Microsoftは、PowerShellワークフロー、PowerShellスナップイン、WMIv1コマンドレット、および特に目的の状態構成リソースを実行すると述べています。

さて、言い換えずに、すべての詳細を表形式で挿入してみましょう。

属性PowerShellPowerShell Core
バージョン1.0から5.16
サポートされているプラットフォームWindowsのみ(クライアント+サーバー)Windows、Linux、MacOS
依存関係.NET Framework.NET Core
使用法.NET Frameworkランタイムに依存.NET Coreランタイムに依存
起動されるものpowershell.exeWindowsではpwsh.exe、MacOSとLinuxではpwsh
$PSVersionTable.PSEditionデスクトップに設定コアに設定
今後のアップデートバグの修正とセキュリティの更新のみ機能の更新、バグの修正、セキュリティの更新

さて、Windows、Linux、またはMacOSマシンでPowerShell Coreを試してみたい場合は、こちらの公式GitHubリポジトリページにアクセスして、システムに適したバージョンを見つけてください。