PowerShell を 5.1 から PowerShell Core 7.x にアップデートする方法
つまり、Windows PowerShell 5.1 ではもう十分ではないという壁にぶつかっているのではないでしょうか。特に、派手な新機能やクロスプラットフォームのサポートが必要な場合はなおさらです。一方、PowerShell Core 7.3 のインストールは少しわかりにくい場合があります。これは、単なる通常のアプリの更新ではなく、実際にはサイドバイサイド インストールであり、既存のスクリプトが影響を受けることがあります。そのため、このガイドでは、よくある問題と、既存の構成を混乱させることなく PowerShell セットアップを修正またはアップグレードする方法を説明します。ネタバレ: 少しマニアックですが、まったく可能です。古いスクリプトを実行したまま、PowerShell 5.1 を完全に更新し (必要な場合)、最新の PowerShell Core を入手できます。重要なのは、各プラットフォームの機能、アップグレードのタイミング、何も壊さずにすべてを統合する方法を理解することです。もちろん、Windows は必要以上に難しくする必要があるからです。
PowerShell のバージョンに関する混乱を解消し、Windows で自分でアップグレードする方法
Windows PowerShell を 5.1 にアップグレードする – 古い Windows をまだ使っているなら必須
Windows PowerShell 5.1は、Windows 10やServer 2016以降などの最近のWindowsバージョンには既にインストールされています。ただし、Windows 7、Windows 8.1、またはそれ以前のサーバーOSをご利用の場合は、手動でインストールする必要があります。以下の簡単なコマンドで現在のバージョンを確認できます。
$PSVersionTable. PSVersion
5.1未満の場合は、*Windows Management Framework 5.1*パッケージを入手してください。あまりスマートな手順ではありませんが、大体以下の手順で実行できます。-.NET Frameworkが最新版、特に. NET 4.5.2以降であることを確認してください。確認するには、次のコマンドを実行します。
(Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full' -Name Release).Release
– リリース番号が 378675 未満の場合は、.NET を 4.8 に更新する必要があります (オフライン インストーラーはこちら: https://go.microsoft.com/fwlink/?linkid=2088631 )。 – お使いの OS 用の *WMF 5.1* パッケージをダウンロードしてインストールします。たとえば、Windows Server 2012 R2 の場合、ファイルは Win8.1AndW2K12R2-KB3191564-x64.msu です (リンクはこちら: https://go.microsoft.com/fwlink/?linkid=839516 )。 – インストール後、再起動します。PowerShell ウィンドウを開くと、プロンプトにバージョン 5.1 が表示されます。表示されない場合は、もう一度再起動するか、PATH を確認してください。 *注:* サポートされていない古いWindows 7/2008 R2などでも、この手順はほぼ同じですが、まずシステムが. NET Framework 4.5.2以降に対応していることを確認してください。時々、動作が不安定になることがあります。
PowerShell Core 7.3 のインストールまたはアップグレード — 新登場
PowerShell Core(現在はPowerShellという名称に変更)は、独立したクロスプラットフォームのツールです。Windows PowerShellを置き換えるものではなく、共存します。つまり、従来の機能のために5.1を維持し、新しいコマンドやリモート管理のためにPowerShell 7.3を実行できます。インストールは簡単ですが、複数のルートがあります。- MSIインストーラーの使用:[PowerShell GitHubリリースページ](https://github.com/PowerShell/PowerShell)からダウンロードします。例えば、*PowerShell-7.3.3-win-x64.msi*をダウンロードします。プロのヒント:本番環境では、常に安定ビルドまたはLTSビルドを選択してください。管理者権限でMSIを実行し、インストーラーのオプションを確認してください。特にリモート管理権限が必要な場合は、「PowerShellをPATHに追加」と「リモート処理を有効にする」に注意してください。 – コマンドライン (PowerShell + winget) の使用: [winget](https://github.com/microsoft/winget-cli) がある場合は、次のコマンドでインストール/更新できます: powershell winget install –id Microsoft. Powershell –source winget 更新するには: powershell winget upgrade –id Microsoft. Powershell – Microsoft Store 経由: Win10/11 では、PowerShell Core は Microsoft Store にも用意されており、自動更新されます。Store で「PowerShell」を検索するか、次のコマンドを実行します: powershell winget search powershell –source msstore その後、直接インストールします。ここでの主な利点は? 自動更新ですが、もちろん、Store でサンドボックス化されていることは誰もが満足できるものではありません。 – PowerShell スクリプトの使用: コマンドラインから自動インストールを実行することもできます: powershell iex “& { $(irm https://aka.ms/install-powershell.ps1) } -UseMSI” これにより、最新の MSI のダウンロードとインストールをサイレントに処理するスクリプトが取得されます。 *注:* 管理された環境の場合は、手動インストールではなく、グループ ポリシーまたはソフトウェア管理ツールを使用して展開することを検討してください。
サイドバイサイド設定 – クラッシュダンスなしで両方を実行し続ける
ちょっと奇妙なのですが…PowerShell 7.3 をインストールしても、既存の Windows PowerShell 5.1 は影響を受けません。これらは異なるフォルダに保存されています。 – Windows PowerShell: ` $env:WINDIR\System32\WindowsPowerShell\v1.0 ` – PowerShell Core 7.x: ` $env:ProgramFiles\PowerShell\7 ` 実行ファイルは、レガシー版では `powershell.exe` ですが、PowerShell Core では `pwsh.exe` です。実行しているバージョンを確認するには、次のコマンドを試してください: powershell (Get-Command ‘pwsh’).Version または、スクリプトからリモート バージョンを確認する場合は、次のコマンドを呼び出します: powershell Invoke-Command -ComputerName server01 -ScriptBlock { (Get-Command ‘pwsh’).Version } また、4.0 などの特定の PowerShell バージョンを実行するには、次のコマンドを呼び出します: powershell C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -Version 4 —
アップデートとメンテナンスはどうですか?
PowerShell 7.2 以降では、適切なオプション (主に、`HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShellCore` の `UseMU` レジストリ設定 (1 に設定) を有効にする) を指定して MSI 経由でインストールすると、自動更新が利用できるようになります。これにより、Windows Update、Microsoft Update、または WSUS が利用されます。[設定] > [更新とセキュリティ] > [Windows Update] > [詳細オプション] で、[他の Microsoft 製品の更新プログラムを受信する] がオンになっていることを確認します。次に、`更新プログラムの確認` を実行すると、PowerShell Core にパッチが適用されます。もう 1 つの方法は、PowerShell から直接更新をトリガーできる PSWindowsUpdate モジュールを使用することです。 powershell Install-Module -Name PSWindowsUpdate Get-WindowsUpdate Install-WindowsUpdate ただし、正直なところ、ほとんどの場合、MSI セットアップ中に自動更新を有効にするか、ストア バージョンに頼るだけで十分です。
まとめ
- 古い Windows PowerShell が 5.1 に更新されていることを確認してください。予期せぬ事態を避けるためにも、通常は最新の状態にしておくことをお勧めします。
- 好みに応じて、MSI、winget、またはストアから PowerShell Core 7.3 をインストールします。
- どちらも並行して問題なく実行されますが、使用している実行可能ファイルに注意してください。
- PowerShell Core を自動的に更新する場合は、Windows Update / WSUS オプションを使用します。
まとめ
両方のバージョンをスムーズに動作させることは、それほど難しいことではありません。むしろ、それぞれのバージョンが必要な理由と、それらを最新の状態に保つ方法を理解することの方が重要です。両方の設定が完了すれば、従来のスクリプトと最新機能を簡単に切り替えることができます。特にPowerShell Coreの新機能をテストする場合は、スクリプトのバックアップを必ず取ってください。状況は予測不可能になることがあります。これで、誰かの時間節約になることを願っています。頑張ってください。そして、WMFパッケージをいじる前に、.NET Frameworkを最新の状態にしておくのをお忘れなく!