Windows への PowerShell のインストール

Windows に PowerShell をインストールする方法は複数あります。 各インストール方法は、異なるシナリオとワークフローをサポートするように設計されています。 目的に合わせて方法を選択してください。

  • MSI パッケージ - 日常的に使用するユーザーに最適な選択肢です。
  • ZIP パッケージ - 複数のバージョンをインストールする、または CI/CD パイプラインで使用するのに最も簡単な方法です。 これは、Windows Nano Server、Windows IoT、Arm ベースのシステムに使用するインストール方法です。
  • .NET グローバル ツール - 他のグローバル ツールをインストールして使用する .NET 開発者に適した選択肢です。
  • Winget - 新しい Windows パッケージ マネージャー ツールの使用を好むユーザー向けです。
  • Microsoft Store パッケージ - PowerShell の一時的なユーザー向けの簡単なインストール方法ですが、制限があります。

注意

この記事のインストール コマンドは、PowerShell の最新の安定したリリース用です。 別のバージョンの PowerShell をインストールするには、必要なバージョンに合わせてコマンドを調整します。 次のリンクを使用すると、GitHub の PowerShell リポジトリの各バージョンのリリース ページに移動します。

すべてのパッケージのダウンロード リンクは、リリース ページの [Assets] セクションにあります。 [Assets] セクションは折りたたまれている場合があります。その場合は、クリックして展開する必要があります。

MSI パッケージのインストール

Windows に PowerShell をインストールするには、次のリンクを使用して GitHub からインストール パッケージをダウンロードします。

ダウンロードしたら、インストーラ ファイルをダブルクリックし、プロンプトの指示に従います。

インストーラーにより、Windows の [スタート] メニューにショートカットが作成されます。

  • パッケージは、既定で $env:ProgramFiles\PowerShell\<version> にインストールされます。
  • PowerShell は、スタート メニューまたは $env:ProgramFiles\PowerShell\<version>\pwsh.exe から起動できます。

注意

PowerShell 7.2 は新しいディレクトリにインストールされ、Windows PowerShell 5.1 とサイドバイサイドで実行できます。 PowerShell 7.2 は、PowerShell 7.0 以前を置き換えるインプレース アップグレードです。

  • PowerShell 7.2 は $env:ProgramFiles\PowerShell\7 にインストールされます
  • $env:ProgramFiles\PowerShell\7 フォルダーは $env:PATH に追加されます
  • 以前にリリースされたバージョン用のフォルダーは削除されます

PowerShell 7.2 をほかのバージョンとサイドバイサイドで実行する場合、ZIP インストールの手法を利用し、ほかのバージョンを別のフォルダーにインストールします。

PowerShell 7.2 での Microsoft Update のサポート

PowerShell 7.2 では Microsoft Update がサポートされています。 この機能を有効にすると、従来の Microsoft Update (MU) の管理フローで、PowerShell 7 の最新の更新プログラムが提供されます。これは、Windows Update for Business、WSUS、SCCM、または設定の対話型 MU ダイアログのいずれでも同じです。

PowerShell 7.2 の MSI パッケージには、次のコマンド ライン オプションが含まれています。

  • USE_MU - このプロパティには、次の 2 つの有効値があります。
    • 1 (既定値) - Microsoft Update、WSUS、または SCCM による更新にオプトインします
    • 0 - Microsoft Update、WSUS、または SCCM による更新にオプトインしません
  • ENABLE_MU
    • 1 (既定値) - 自動更新用の Microsoft Update の使用にオプトインします
    • 0 - Microsoft Update の使用にオプトインしません

注意

更新プログラムの有効化は、以前のインストールまたは手動構成で設定されている可能性があります。 ENABLE_MU=0 を使用しても、既存の設定は削除されません。 また、この設定は、管理者によって制御されるグループ ポリシーの設定で無効にできます。

詳細については、PowerShell の Microsoft Update の FAQ に関する記事を参照してください。

コマンド ラインからの管理者インストール

MSI パッケージはコマンド ラインからインストールできるため、管理者はユーザーの介入なしにパッケージを展開できます。 MSI パッケージには、インストールのオプションを制御するための次のプロパティが含まれます。

  • ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL - このプロパティでは、エクスプローラーのコンテキスト メニューに Open PowerShell 項目を追加するためのオプションを制御します。
  • ADD_FILE_CONTEXT_MENU_RUNPOWERSHELL - このプロパティでは、エクスプローラーのコンテキスト メニューに Run with PowerShell 項目を追加するためのオプションを制御します。
  • ENABLE_PSREMOTING - このプロパティでは、インストール中に PowerShell リモート処理を有効にするためのオプションを制御します。
  • REGISTER_MANIFEST - このプロパティでは、Windows イベント ログのマニフェストを登録するためのオプションを制御します。

すべてのインストール オプションを有効にして PowerShell をサイレント インストールする方法を、次の例に示します。

msiexec.exe /package PowerShell-7.2.0-win-x64.msi /quiet ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL=1 ENABLE_PSREMOTING=1 REGISTER_MANIFEST=1 USE_MU=1 ENABLE_MU=1

Msiexec.exe 用のコマンド ライン オプションの完全な一覧については、コマンド ライン オプションに関するページをご覧ください。

ZIP パッケージのインストール

PowerShell バイナリ ZIP アーカイブは、高度な展開シナリオ用に用意されています。 現在のリリースのページから、次のいずれかの ZIP アーカイブをダウンロードします。

ファイルのダウンロード方法によっては、Unblock-File コマンドレットを使用して、ファイルのブロックを解除することが必要になる場合があります。 任意の場所にコンテンツを解凍し、そこから pwsh.exe を実行します。 MSI パッケージをインストールする場合とは異なり、ZIP アーカイブをインストールしても、前提条件は確認されません。 WSMan 経由でのリモート処理を正常に動作させるために、前提条件を満たしていることを確かめてください。

この方法を使用して、Microsoft Surface Pro X のようなコンピューターに ARM ベース バージョンの PowerShell をインストールします。最適な結果を得るには、PowerShell を $env:ProgramFiles\PowerShell\7 フォルダーにインストールします。

.NET グローバル ツールとしてインストールする

.NET Core SDK が既にインストールされている場合は、PowerShell を .NET グローバル ツールとしてインストールできます。

dotnet tool install --global PowerShell

dotnet tool install によって、$env:PATH 環境変数に $env:USERPROFILE\.dotnet\tools が追加されます。 ただし、現在実行中のシェルには更新された $env:PATH が設定されていません。 新しいシェルからは、「pwsh」と入力すると PowerShell を起動できます。

Winget を使用して PowerShell をインストールする

Windows パッケージ マネージャーの Winget は、開発者が Windows 10 コンピューター上のアプリケーションの検出、インストール、アップグレード、削除、および構成を行うことができるコマンドライン ツールです。 このツールは、Windows パッケージ マネージャー サービスに対するクライアント インターフェイスです。

注意

システム要件とインストール手順の一覧については、winget に関するドキュメントを参照してください。

次のコマンドを使用すると、公開済みの winget パッケージを使用して PowerShell をインストールできます。

最新バージョンの PowerShell を検索します

winget search Microsoft.PowerShell
Name               Id                           Version  Source
----------------------------------------------------------------
PowerShell         Microsoft.PowerShell         7.2.0.0  winget
Powershell Preview Microsoft.PowerShell.Preview 7.2.0.10 winget

id パラメーターを使って Powershell または Powershell プレビューをインストールします

winget install --id Microsoft.Powershell --source winget
winget install --id Microsoft.Powershell.Preview --source winget

Microsoft Store からインストールする

PowerShell 7.2 は、Microsoft Store からインストールできます。 PowerShell のリリースは、Microsoft Store サイトまたは Windows の Store アプリケーションで見つけることができます。

Microsoft Store パッケージの利点:

  • Windows に直接組み込まれた自動更新
  • Intune や SCCM など、他のソフトウェア配布メカニズムとの統合

既知の制限事項

既定では、Windows Store パッケージは、一部のファイルシステムとレジストリの場所へのアクセスを仮想化するアプリケーション サンドボックスで実行されます。 仮想化されたファイルとレジストリの場所への変更は、アプリケーション サンドボックスの外部では保持されません。

このサンドボックスでは、アプリケーションのルート フォルダーへの変更がすべてブロックされます。 $PSHOME に格納されているシステムレベルの構成設定は変更できません。 これには WSMAN 構成が含まれます。 これにより、リモート セッションが PowerShell のストアベース インストールに接続できなくなります。 ユーザーレベル構成と SSH リモート処理がサポートされていません。

次のコマンドは、$PSHOME に書き込む必要があります。 これらのコマンドは、PowerShell の Microsoft Store インスタンスではサポートされません。

  • Register-PSSessionConfiguration
  • Update-Help -Scope AllUsers
  • Enable-ExperimentalFeature -Scope AllUsers
  • Set-ExecutionPolicy -Scope LocalMachine

詳細については、「Windows でパッケージ化されたデスクトップ アプリが動作するしくみについて」を参照してください。

PowerShell 7.2 の変更点

PowerShell 7.2 以降、PowerShell パッケージは、ファイルとレジストリの仮想化の除外対象となりました。 仮想化されたファイルとレジストリの場所への変更は、アプリケーション サンドボックスの外部で保持されます。 ただし、アプリケーションのルート フォルダーへの変更は、引き続きブロックされます。

重要

この除外対象を機能させるには、Windows ビルド 1903 以降で実行する必要があります。

プレビュー バージョンのインストール

PowerShell 7 のプレビュー リリースは $env:ProgramFiles\PowerShell\7-preview にインストールされるため、PowerShell のプレビュー以外のリリースとサイドバイサイドで実行できます。 次のプレビュー リリースは PowerShell 7.3 です。

既存のインストールのアップグレード

アップグレード時に最適な結果を得るには、最初に PowerShell をインストールしたときと同じインストール方法を使用してください。 各インストール方法では、PowerShell をそれぞれ異なる場所にインストールします。 PowerShell がインストールされた方法がわからない場合は、この記事のパッケージ情報とインストールされている場所を比較できます。 MSI パッケージを使用してインストールした場合、その情報は [プログラムと機能] コントロール パネルに表示されます。

Windows 10 IoT Enterprise への展開

Windows 10 IoT Enterprise には、PowerShell 7 の展開に使用できる Windows PowerShell が付属しています。

# Replace the placeholder information for the following variables:
$deviceip = '<device ip address'
$zipfile = 'PowerShell-7.2.0-win-Arm64.zip'
$downloadfolder = 'u:\users\administrator\Downloads'  # The download location is local to the device.
    # There should be enough  space for the zip file and the unzipped contents.

# Create PowerShell session to target device
Set-Item -Path WSMan:\localhost\Client\TrustedHosts $deviceip
$S = New-PSSession -ComputerName $deviceIp -Credential Administrator
# Copy the ZIP package to the device
Copy-Item $zipfile -Destination $downloadfolder -ToSession $S

#Connect to the device and expand the archive
Enter-PSSession $S
Set-Location u:\users\administrator\Downloads
Expand-Archive .\PowerShell-7.2.0-win-Arm64.zip

# Set up remoting to PowerShell 7
Set-Location .\PowerShell-7.2.0-win-Arm64
# Be sure to use the -PowerShellHome parameter otherwise it tries to create a new
# endpoint with Windows PowerShell 5.1
.\Install-PowerShellRemoting.ps1 -PowerShellHome .

PowerShell リモート処理を設定すると、エラー メッセージが表示され、デバイスから切断されます。 PowerShell で WinRM を再起動する必要があります。 これにより、デバイス上の PowerShell 7 エンドポイントに接続できます。


# Be sure to use the -Configuration parameter. If you omit it, you connect to Windows PowerShell 5.1
Enter-PSSession -ComputerName $deviceIp -Credential Administrator -Configuration PowerShell.7.2.0

Windows 10 IoT Core への展開

PowerShell 7 の展開に使用できる IOT_POWERSHELL 機能を取り込む場合、Windows 10 IoT Core によって Windows PowerShell が追加されます。 上記で Windows 10 IoT Enterprise に対して定義した手順は、IoT Core にも適用できます。

配布イメージに最新の PowerShell を追加する場合は、Import-PSCoreRelease コマンドを使用して、ワークスペースにパッケージを取り込み、さらに OPENSRC_POWERSHELL 機能をご利用のイメージに追加します。

注意

ARM64 アーキテクチャの場合、IOT_POWERSHELL を取り込むときに、Windows PowerShell は追加されません。 そのため、zip ベースのインストールは機能しません。 イメージに追加するには、Import-PSCoreRelease コマンドを使用する必要があります。

Nano Server への展開

以下の手順では、Nano Server が "ヘッドレス" OS であり、あるバージョンの PowerShell が既に実行されていることを前提としています。 詳細については、Nano Server Image Builder のドキュメントをご覧ください。

PowerShell バイナリを展開するには、2 つの方法があります。

  1. オフライン: Nano Server VHD をマウントし、zip ファイルの中身をマウント イメージ内の選択した場所に展開します。
  2. オンライン: zip ファイルを PowerShell セッションを介して転送し、選択した場所にそれを展開します。

どちらの場合も、Windows x64 ZIP リリース パッケージが必要です。 PowerShell の "管理者" インスタンス内でコマンドを実行してください。

PowerShell のオフラインでの展開

  1. お好みの zip ユーティリティを使用して、マウントされた Nano Server イメージ内のディレクトリにパッケージを解凍します。
  2. イメージをマウント解除し、ブートします。
  3. Windows PowerShell の組み込みインスタンスに接続します。
  4. 別のインスタンスのテクニック」の、リモート エンドポイントを作成する手順に従います。

PowerShell のオンラインでの展開

次の手順に従って、PowerShell を Nano Server に展開します。

# Replace the placeholder information for the following variables:
$ipaddr = '<Nano Server IP address>'
$credential = Get-Credential # <An Administrator account on the system>
$zipfile = 'PowerShell-7.2.0-win-x64.zip'
# Connect to the built-in instance of Windows PowerShell
$session = New-PSSession -ComputerName $ipaddr -Credential $credential
# Copy the file to the Nano Server instance
Copy-Item $zipfile c:\ -ToSession $session
# Enter the interactive remote session
Enter-PSSession $session
# Extract the ZIP file
Expand-Archive -Path C:\PowerShell-7.2.0-win-x64.zip -DestinationPath 'C:\Program Files\PowerShell 7'

WSMan を使用してリモート処理を行う場合、「別のインスタンスのテクニック」の、リモート エンドポイントを作成する手順に従います。

PowerShell リモート処理

PowerShell では、WSMan と SSH の両方について PowerShell Remoting Protocol (PSRP) がサポートされています。 詳細については、次を参照してください。

古いバージョンの Windows 上の WSMan 経由で PowerShell リモート処理を有効にするには、次の前提条件が満たされている必要があります。

  • Windows Management Framework (WMF) 5.1 をインストールします (必要な場合)。 WMF の詳細については、WMF の概要に関する記事を参照してください。
  • Windows 10 より前のバージョンの Windows にユニバーサル C ランタイムをインストールします。 これは、直接ダウンロードすることも、Windows Update 経由で入手することもできます。 完全にパッチが適用されたシステムには、既にこのパッケージがインストールされています。

サポートされている Windows のバージョン

次の表は、PowerShell のリリースと、それらがサポートされている Windows のバージョンの一覧です。 これらのバージョンは、PowerShell のバージョンがサポート終了になるか、Windows のバージョンがサポート終了になるまでサポートされます。

  • ✅ は、OS または PowerShell のバージョンがまだサポートされていることを示します
  • ❌ は、OS または PowerShell のバージョンがサポートされていないことを示します
  • 🟡 は、PowerShell のそのバージョンが OS のそのバージョンでサポートされなくなっていることを示します
  • OS のバージョンと PowerShell のバージョンの両方が ✅ である場合は、その組み合わせがサポートされます
Windows 7.0 (LTS) 7.1 7.2 (LTS-current)
✅ Windows Server 2016、2019、2022
✅ Windows Server 2012 R2
✅ Windows Server Core (2012 R2 以降)
✅ Windows Server Nano (1809 以降)
❌ Windows Server 2012 🟡 🟡
❌ Windows Server 2008 R2 🟡 🟡
✅ Windows 11
✅ Windows 10 1607 以降
✅ Windows 8.1

注意

Windows の特定のバージョンのサポートは、Microsoft サポート ライフサイクル ポリシーによって決まります。 詳細については、次を参照してください。

PowerShell は、次のプロセッサ アーキテクチャの Windows でサポートされています。

Windows 7.0 (LTS) 7.1 7.2 (LTS-current)
Nano Server バージョン 1803 以降 x64、Arm32 X64 X64
Windows Server 2012 R2 以降 x64、x86 x64、x86 x64、x86
Windows Server Core 2012 R2 以降 x64、x86 x64、x86 x64、x86
Windows 10 または 11 クライアント x64、x86 x64、x86、Arm64 x64、x86、Arm64
Windows 8.1 クライアント x64、x86 x64、x86 x64、x86

winver.exe を実行することで、使用しているバージョンを確認できます。

インストールのサポート

Microsoft は、このドキュメントでインストール方法をサポートしています。 他のソースには、サードパーティの別のインストール方法を利用できる可能性があります。 そのようなツールや方法が役に立つものであっても、Microsoft は、そのような方法をサポートすることはできません。