この記事ではアップデート方法について説明しますWindows PowerShell最新バージョン5.1へのインストール(アップグレード)方法PowerShell コア7.3.現在、PowerShell には 2 つのブランチがあります。
- 古典的なWindows PowerShell(最大バージョンは 5.1 で、現在は開発されていません。);
- 新しいPowerShell コアプラットフォーム (バージョン 7.3 が現在利用可能です)。
PowerShell のバージョン番号は 5.1 から継続しています (6.0、6.1、7.0、7.1 など) が、これらは 2 つの異なるプラットフォームです。したがって、Windows PowerShell と PowerShell Core の更新については個別に説明します。
PowerShell Core 7.x は、従来の Windows PowerShell と最も互換性のあるバージョンです。これは、古い PS1 スクリプト ファイルとコマンドレットを PowerShell Core で簡単に実行できることを意味します。
コンテンツ:
- Windows PowerShell 5.1 へのアップグレード
- PowerShell Core 7 をインストールまたは更新するにはどうすればよいですか?
- リモート コンピューターでの PowerShell コアのインストール/更新
- Windows Update または WSUS を介した PowerShell の更新
Windows PowerShell 5.1 は、Windows 10 および Windows Server 2016 以降のすべてのバージョンに既定でインストールされています。
以前のバージョン (Windows 7/8.1 および Windows 2008 R2/2012) の場合は、PowerShell 5.1 に手動でアップグレードする必要があります。たとえば、Windows Server 2012 R2 (Windows 8.1) には PowerShell 4.0 がインストールされています。
Windows Server 2012 R2 で Windows PowerShell バージョンを 5.1 にアップグレードしてみましょう。
まず、現在の PowerShell バージョンを確認します (スクリーンショットは PowerShell 4.0 であることを示しています)。
$PSVersionTable.PSVersion

PowerShell バージョンを 5.1 にアップグレードするには、Windows 管理フレームワーク 5.1、これには、.NET フレームワーク 4.5.2(またはそれ以降)。次のコマンドを使用して、.NET 4.5.2 以降がインストールされていることを確認します。
(Get-ItemProperty ‘HKLM:SOFTWAREMicrosoftNET Framework SetupNDPv4Full’ -Name Release).Release


私の場合、リリースバージョンは378675.NET Framework バージョン 4.5.1 がインストールされていることを意味します。したがって、最新の .NET Framework 4.8 をダウンロードしてインストールする必要があります (オフライン インストーラーへのリンクは次のとおりです)。https://go.microsoft.com/fwlink/?linkid=2088631—ndp48-x86-x64-allos-enu.exe)。
.NET 4.8 パッケージをインストールします (コンピューターを再起動する必要があります)。


.NET 4.5.2 を使用せずに WMF 5.1 をインストールすると、一部の PowerShell 機能が使用できなくなります。
ダウンロードWMF 5.1Windows Server 2012 R2 の場合 —Win8.1AndW2K12R2-KB3191564-x64.msu(https://go.microsoft.com/fwlink/?linkid=839516)。
MSU ファイルから Windows Management Framework 5.1 をインストールします。


サーバーを再起動した後、powershell.exe コンソールを開き、PowerShell のバージョンが 5.1 に更新されていることを確認します。


サポートされていない Windows 7 または Windows Server 2008 R2 を使用している場合は、同様の方法で PowerShell バージョンを 2.0 から 5.1 にアップグレードできます。まず、インストールします.Net フレームワーク 4.5.2(またはそれより新しい)、その後WMF 5.1(ダウンロード リンクは Windows Server 2012 R2 のリンクとは異なります)。
PowerShell Core 7 をインストールまたは更新するにはどうすればよいですか?
PowerShell Core はクロスプラットフォームであり、(Windows PowerShell 5.1 とは異なり) 活発に開発されています。実際、PowerShell Core は、従来の Windows PowerShell とともにオペレーティング システムにインストールされる新しいプラットフォームです。これは、PowerShell 5.1 から PowerShell Core 7.3 にアップグレードできないことを意味します。 PowerShell 7.x は、Windows PowerShell 5.1 とは別に (サイドバイサイドで) コンピューターにインストールされます。
現時点では、PowerShell Core 6.x および 7.x が利用可能です。従来のスクリプトとの特別な互換性が必要でない限り、PowerShell の最新バージョン (現在 7.3) を常にインストールすることをお勧めします。
Windows 10 および 11 で PowerShell Core バージョンをアップグレード (インストール) するには、いくつかの方法があります。
- GitHub からダウンロードできる PowerShell Core MSI インストーラーを使用します。
- 組み込みの Windows 10/11 パッケージ マネージャー WinGet を使用する。
- Microsoft ストアを使用する。
次に、Windows 10 22H2 で PowerShell Core を 7.3 に更新する例を使用して、これらの方法をすべて見ていきます。
MSI インストールを使用した PowerShell コアのアップグレード
MSI パッケージを使用して PowerShell Core をインストールする場合は、プロジェクト ページに移動してくださいhttps://github.com/PowerShell/PowerShellご使用の OS バージョンに応じたインストール パッケージをダウンロードします。この記事の執筆時点では、PowerShell の最新リリースは次のとおりです。v7.3.3、2023 年 2 月 24 日付 (例:PowerShell-7.3.3-win-x64.msiまたはPowerShell-7.3.3-win-x86.msi)。運用環境には安定版または LTS リリースのみを使用してください。


MSI ファイルをダウンロードしてインストールします。
次のインストール オプションが利用可能です。
- PowerShell をパス環境変数に追加する
- Windows イベント ログ マニフェストを登録します (PowerShell イベントに対して別のイベント ビューアー ログが作成されます。
%SystemRoot%System32WinevtLogsPowerShellCore%4Operational.evtx) - PowerShell リモート処理を有効にする (PowerShell リモート処理用に WinRM を有効にして構成します)
- 「ここで開く」コンテキストメニューをエクスプローラーに追加
- PowerShell ファイルの「PowerShell 7 で実行」コンテキスト メニューを追加


次に、Windows Update/WSUS を通じて PowerShell コアの自動更新を有効にできます (以下を参照)。


SCCM/MDT/スクリプトをクワイエット モードで使用して MSI パッケージから PowerShell Core をインストールするには、次のパラメーターを指定したコマンドを使用できます。
以下も参照してください。Windows 11 で PowerShell のバージョンを確認する方法
- ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL
- ADD_FILE_CONTEXT_MENU_RUNPOWERSHELL
- ENABLE_PSREMOTING
- REGISTER_MANIFEST
- パスの追加
- DISABLE_TELEMETRY
- USE_MU – Microsoft Update を使用して PSCore アップデートを入手します
- ENABLE_MU – Windows Update を通じて PowerShell コアを更新できるようにします
たとえば、サイレント インストールのコマンドは次のようになります。
msiexec.exe /package PowerShell-7.3.3-win-x64.msi /quiet ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL=1 ENABLE_PSREMOTING=1 REGISTER_MANIFEST=1 ADD_PATH=1 ENABLE_MU=1 ADD_PATH=1
PowerShell はコンソールから直接アップグレードできます。最新バージョンの PowerShell Core をインストールまたはアップグレードするには、次のコマンドを実行します。
iex "& { $(irm https://aka.ms/install-powershell.ps1) } -UseMSI"
このコマンドは、PowerShell 7.3 MSI ファイルを GitHub からダウンロードし、MSI インストーラーを介してインストールを開始します。


インストールが完了すると、PowerShell Core (pwsh.exe) ウィンドウが表示されます。 PowerShell のバージョンをチェックして、PoSh 7.3.3 に更新されていることを確認します。


WinGet パッケージ マネージャーを使用した PowerShell コアのインストールまたは更新
WinGet パッケージ マネージャーがインストールされている場合は、PowerShell バージョンをインストールまたは最新のコマンドに更新できます。
winget install --id Microsoft.Powershell --source winget
または、特定のバージョンの PowerShell Core をインストールすることもできます。
winget install --id=Microsoft.PowerShell -v "7.1.2" -e
Chocolatey パッケージ マネージャーがインストールされている場合は、次のコマンドを使用します (5.1 の場合)。
choco install powershell -y
choco upgrade powershell -y
または PowerShell 7.x の場合:choco install pwsh -y
choco install pwsh -y
PowerShell のさまざまなバージョンのデフォルトのディレクトリに注意してください。
- Windows PowerShell 5.1:
$env:WINDIRSystem32WindowsPowerShellv1.0 - PowerShell コア 6.x:
$env:ProgramFilesPowerShell6 - PowerShell コア 7.x:
$env:ProgramFilesPowerShell7
PowerShell 6.x がコンピューターにインストールされている場合、$env:ProgramFilesPowerShell6PowerShell 7.3 をインストールすると、ディレクトリは自動的に削除されます。
PowerShell 実行可能ファイルの名前が変更されていることに注意してください。 PowerShell コアでは、次のようになります。c:プログラム ファイルPowerShell7pwsh.exe。 [スタート] メニューにアイコンがあります。
- .NET Framework ベースの Windows PowerShell を実行するには、
powershell.exeコマンドが使用されます - .NET Core ベースの PowerShell Core を実行するには、
pwsh.exe


これは、コンピューターに Windows PowerShell 5.1 と PowerShell Core 7.3 の両方がインストールされていることを意味します。


デバイスにインストールされている PowerShell のバージョンとビルドを確認するには、pwsh.exe ファイルのバージョンを確認します。
(Get-Command 'C:Program FilesPowerShell7pwsh.exe').Version


リモート コンピューター上のファイルのバージョンを確認する方法は次のとおりです。
Invoke-Command -Computername computer1 -Scriptblock {(Get-Command 'C:Program FilesPowerShell7pwsh.exe').Version}
Windows PowerShell は、新しいバージョンがインストールされている場合でも、古いバージョンの PowerShell を実行できる特別な下位互換性モードを提供します。次のコマンドを使用して、特定のバージョンの PowerShell 例 (4.0) を実行できます。
C:WindowsSystem32WindowsPowerShellv1.0powershell.exe -Version 4
Microsoft Store 経由で Windows 10 および 11 に PowerShell Core をインストールする
Windows 10 および 11 では、Microsoft Store を通じて PowerShell をインストールまたは更新できます。ストアで PowerShell アプリを手動で見つけるか、これを使用できます。リンク。
WinGet を使用して、PowerShell のストア バージョンをインストールすることもできます。
winget search powershell --source msstore
winget install --id 9MZ1SNWT0N5D
Microsoft Store から PowerShell Core をインストールする利点は、App Store がインストールされている PowerShell のバージョンを自動的にチェックし、更新プログラムが利用可能になったら自動的にインストールすることです。
Store バージョンの PowerShell Core がインストールされていることを確認するには、次のコマンドを使用します。
Get-AppPackage Microsoft.PowerShell
この例では、Microsoft.PowerShell_7.3.3.0_x64__8wekyb3d8bbwe パッケージがインストールされます。


ただし、このような PowerShell インスタンスがサンドボックス環境で実行されることには欠点もあります。


APPX または MSIX アプリケーション ファイルをダウンロードし、次のコマンドを使用してインストールできます。Add-AppxPackagePowerShell コマンドレット。
リモート コンピューターでの PowerShell コアのインストール/更新
複数のリモート コンピューターに PowerShell コアをインストールまたは更新する 2 つのシナリオを考えてみましょう。
グループ ポリシーを使用した PowerShell コアの展開
グループ ポリシーを使用して、Active Directory ドメインで PowerShell コアを一元的に展開および更新できます。 GPO の機能を使用して、MSI パッケージをドメイン コンピューターに展開します。
- PowerShell MSI インストール ファイルをダウンロードし、ドメイン コントローラーの SYSVOL ディレクトリにコピーします。
- ドメイン グループ ポリシー管理コンソールを開きます (
gpmc.msc)、新しい GPO を作成し、コンピューターとサーバーを含む OU にリンクします。 - GPO セクションに移動しますコンピュータの構成->ソフトウェア設定、新しいパッケージを作成し、ドメイン内の SYSVOL フォルダーにある PowerShell MSI インストール ファイルへのパスを指定します (UNC パスを使用します)。

ポリシーのターゲットをより正確にドメイン デバイスに設定するには、GPO WMI フィルターを使用できます。 - ソフトウェア インストールのグループ ポリシー設定を更新するには、コンピュータを再起動する必要があります。新しいバージョンの PowerShell は、起動時にすべてのコンピューターにインストールされます。
コマンド プロンプトからリモート コンピューター上の PowerShell を更新するにはどうすればよいですか?
コマンド ライン プロンプトを使用して、リモート コンピューター上の PowerShell を更新できます。
- 最初の方法では、共有ネットワーク フォルダー内の MSI インストーラーを使用して、コンピューター上の PowerShell をリモートで更新します。
Invoke-Command -ComputerName mun-srv01 -ScriptBlock {Start-Process msiexec.exe -ArgumentList '/package "\mun-fs01installPowerShell-7.3.3-win-x64.msi" /quiet ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL=1 ENABLE_PSREMOTING=1 REGISTER_MANIFEST=1' -Wait}
- 次のスクリプトは、Active Directory ドメインから Windows 10 を実行している有効なコンピューターをすべて選択し、それぞれのコンピューターで PowerShell Core のダウンロードとインストールを開始します。
$ADComputers = Get-ADComputer -Filter 'operatingsystem -like "*Windows 10*" -and enabled -eq "true"'GetADComputer コマンドレットを使用するには、コンピューターに Active Directory PowerShell モジュールがインストールされている必要があります。
ForEach ($computer in $ADcomputers) {
Invoke-Command -ComputerName $computer {iex "& { $(irm https://aka.ms/install-powershell.ps1) } -UseMSI -Quiet"}
}
リモート コンピューターに接続するときに PowerShell リモート コマンドを使用するときは注意してください (Enter-PSSessionそしてInvoke-Commandコマンドレット)。 PowerShell 7 エンドポイントに接続する必要がある場合は、次のコマンドを使用する必要があります。
Enter-PSSession -ComputerName dc01 -ConfigurationName "powershell.7"
それ以外の場合は、PowerShell Remoting 5.1 エンドポイントに接続します。
Windows Update または WSUS を介した PowerShell の更新
PowerShell Core バージョン 7.2 より前では、pwsh.exe は自動的に更新されませんでした。新しいバージョンのリリース後には、コンソールに通知のみが表示されました。
A new PowerShell stable release is available. Upgrade now, or check out the release page at: https://aka.ms/PowerShell-Release?tag=v7.1.3


バージョン 7.2 以降、PowerShell Core は Windows Update (Microsoft Update、Windows Update for Business、内部 WSUS サーバー、または SCCM) を介した自動更新をサポートします。これを行うには、MSI パッケージのインストール中に適切なオプションを有効にする必要があります。
ことを確認してください。Windows を更新するときに他の Microsoft 製品の更新プログラムを受け取るこのオプションは、[設定] -> [更新とセキュリティ] -> [Windows Update] -> [詳細オプション] で有効になりました。


管理者は、グループ ポリシー設定を通じて更新プログラムのインストール オプションを構成できます。
さて、クリックすると、アップデートをチェックするボタンをクリックするか、PSWindowsUpdate モジュールを通じて更新スキャンを実行すると、PowerShell Core の更新も受信します。















