Windows への PowerShell のインストール
Windows に PowerShell をインストールする方法は複数あります。 各インストール方法は、異なるシナリオとワークフローをサポートするように設計されています。 目的に合わせて方法を選択してください。
- Winget - Windows クライアントに PowerShell をインストールする場合に推奨される方法
- MSI パッケージ - Windows Server とエンタープライズ展開シナリオに最適な選択肢
- ZIP パッケージ - "サイド ロード" または複数のバージョンをインストールする場合に最も簡単な方法
- Windows Nano Server、Windows IoT、Arm ベースのシステムにはこの方法を使用してください
- .NET グローバル ツール - 他のグローバル ツールをインストールして使用する .NET 開発者に適した選択肢です
- Microsoft Store パッケージ - PowerShell の一時的なユーザー向けの簡単なインストール方法ですが、制限があります
注意
この記事のインストール コマンドは、PowerShell の最新の安定したリリース用です。 別のバージョンの PowerShell をインストールするには、必要なバージョンに合わせてコマンドを調整します。 次のリンクを使用すると、GitHub の PowerShell リポジトリの各バージョンのリリース ページに移動します。
- 安定版リリース: https://aka.ms/powershell-release?tag=stable
- LTS リリース: https://aka.ms/powershell-release?tag=lts
- プレビュー リリース: https://aka.ms/powershell-release?tag=preview
すべてのパッケージのダウンロード リンクは、リリース ページの [Assets] セクションにあります。 [Assets] セクションは折りたたまれている場合があります。その場合は、クリックして展開する必要があります。
Winget を使用して PowerShell をインストールする (推奨)
Windows パッケージ マネージャーの Winget は、ユーザーが Windows クライアント コンピューター上のアプリケーションの検出、インストール、アップグレード、削除、および構成を行うことができるコマンドライン ツールです。 このツールは、Windows パッケージ マネージャー サービスに対するクライアント インターフェイスです。 winget
コマンドライン ツールは、既定では、アプリ インストーラーとして Windows 11 と最新バージョンの Windows 10 にバンドルされています。
注意
システム要件とインストール手順の一覧については、winget に関するドキュメントを参照してください。
Winget
は、Windows Server 2022 以前のバージョンでは使用できません。
Windows Server 2025 プレビュー ビルド 26085 以降には、デスクトップ エクスペリエンスwinget
のみを備えた Windows Server 用の が含まれています。 詳細については、「Windows Server プレビュー ビルド 26085 の発表」を参照してください。
次のコマンドを使用すると、公開済みの winget
パッケージを使用して PowerShell をインストールできます。
最新バージョンの PowerShell を検索します
winget search Microsoft.PowerShell
Name Id Version Source
-----------------------------------------------------------------
PowerShell Microsoft.PowerShell 7.4.6.0 winget
PowerShell Preview Microsoft.PowerShell.Preview 7.5.0.3 winget
id
パラメーターを使用して PowerShell または PowerShell プレビューをインストールします
winget install --id Microsoft.PowerShell --source winget
winget install --id Microsoft.PowerShell.Preview --source winget
Note
X86 または X64 プロセッサを使う Windows システムの場合、winget
によって MSI パッケージがインストールされます。 Arm64 プロセッサを使うシステムの場合、winget
によって Microsoft Store (MSIX) パッケージがインストールされます。 詳細については、「Microsoft Store からインストールする」を参照してください。
MSI パッケージのインストール
Windows に PowerShell をインストールするには、次のリンクを使用して GitHub からインストール パッケージをダウンロードします。
ダウンロードしたら、インストーラ ファイルをダブルクリックし、プロンプトの指示に従います。
インストーラーにより、Windows の [スタート] メニューにショートカットが作成されます。
- パッケージは、既定で
$env:ProgramFiles\PowerShell\<version>
にインストールされます。 - PowerShell は、スタート メニューまたは
$env:ProgramFiles\PowerShell\<version>\pwsh.exe
から起動できます。
Note
PowerShell 7.4 は新しいディレクトリにインストールされ、Windows PowerShell 5.1 と side-by-side 実行されます。 PowerShell 7.4 はインプレース アップグレードであり、以前のバージョンの PowerShell 7 は削除されます。 PowerShell のプレビュー バージョンは、他のバージョンの PowerShell と一緒にインストールできます。
- PowerShell 7.4 は
$env:ProgramFiles\PowerShell\7
にインストールされます $env:ProgramFiles\PowerShell\7
フォルダーは$env:PATH
に追加されます
PowerShell 7.4 を他のバージョンと side-by-side 実行する場合、ZIP インストール手法を利用し、他のバージョンを別のフォルダーにインストールしてください。
PowerShell 7.2 以降での Microsoft Update のサポート
PowerShell 7.2 以降では Microsoft Update がサポートされています。 この機能を有効にすると、従来の Microsoft Update (MU) の管理フローで、PowerShell 7 の最新の更新プログラムが提供されます。これは、Windows Update for Business、WSUS、Microsoft Endpoint Configuration Manager、または設定の対話型 MU ダイアログのいずれでも同じです。
PowerShell の MSI パッケージには、次のコマンド ライン オプションが含まれています。
USE_MU
- このプロパティには、次の 2 つの有効値があります。1
(既定値) - Microsoft Update、WSUS、または Configuration Manager による更新にオプトインします0
- Microsoft Update、WSUS、または Configuration Manager による更新にオプトインしません
ENABLE_MU
1
(既定値) - 自動更新用の Microsoft Update の使用にオプトインします0
- Microsoft Update の使用にオプトインしません
注意
更新プログラムの有効化は、以前のインストールまたは手動構成で設定されている可能性があります。 ENABLE_MU=0
を使用しても、既存の設定は削除されません。 また、この設定は、管理者によって制御されるグループ ポリシーの設定で無効にできます。
詳細については、PowerShell の Microsoft Update の FAQ に関する記事を参照してください。
コマンド ラインから MSI パッケージをインストールする
MSI パッケージはコマンド ラインからインストールできるため、管理者はユーザーの介入なしにパッケージを展開できます。 MSI パッケージには、インストールのオプションを制御するための次のプロパティが含まれます。
ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL
- このプロパティでは、エクスプローラーのコンテキスト メニューにOpen PowerShell
項目を追加するためのオプションを制御します。ADD_FILE_CONTEXT_MENU_RUNPOWERSHELL
- このプロパティでは、エクスプローラーのコンテキスト メニューにRun with PowerShell
項目を追加するためのオプションを制御します。ENABLE_PSREMOTING
- このプロパティでは、インストール中に PowerShell リモート処理を有効にするためのオプションを制御します。REGISTER_MANIFEST
- このプロパティでは、Windows イベント ログのマニフェストを登録するためのオプションを制御します。ADD_PATH
- このプロパティでは、Windows PATH 環境変数に PowerShell を追加するためのオプションを制御します。DISABLE_TELEMETRY
- このプロパティは、POWERSHELL_TELEMETRY_OPTOUT
環境変数を設定して PowerShell のテレメトリを無効にするオプションを制御します。INSTALLFOLDER
- このプロパティは、インストール ディレクトリを制御します。 既定値は、$env:ProgramFiles\PowerShell\
です。 これは、インストーラーによってバージョン管理されたサブフォルダーが作成される場所です。 バージョン管理されたサブフォルダーの名前を変更することはできません。- 現在のリリースでは、バージョン管理されたサブフォルダーは
7
です - プレビュー リリースの場合、バージョン管理されたサブフォルダーは
7-preview
です
- 現在のリリースでは、バージョン管理されたサブフォルダーは
すべてのインストール オプションを有効にして PowerShell をサイレント インストールする方法を、次の例に示します。
msiexec.exe /package PowerShell-7.4.6-win-x64.msi /quiet ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL=1 ADD_FILE_CONTEXT_MENU_RUNPOWERSHELL=1 ENABLE_PSREMOTING=1 REGISTER_MANIFEST=1 USE_MU=1 ENABLE_MU=1 ADD_PATH=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
環境変数に $HOME\.dotnet\tools
が追加されます。
ただし、現在実行中のシェルには更新された $env:PATH
が設定されていません。 新しいシェルからは、「pwsh
」と入力すると PowerShell を起動できます。
Microsoft Store からのインストール
PowerShell は Microsoft Store からインストールできます。 PowerShell のリリースは、Microsoft Store サイトまたは Windows の Store アプリケーションで見つけることができます。
Microsoft Store パッケージの利点:
- Windows に直接組み込まれた自動更新
- Intune や Configuration Manager など、他のソフトウェア配布メカニズムとの統合
- x86、x64、または Arm64 プロセッサを使用して Windows システムにインストールできる
既知の制限事項
既定では、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.4 は、次回のプレビュー リリースです。
既存のインストールのアップグレード
アップグレード時に最適な結果を得るには、最初に PowerShell をインストールしたときと同じインストール方法を使用してください。 PowerShell がどのようにインストールされたかが分からない場合は、現在のセッションが実行している PowerShell を含むディレクトリを常に指す $PSHOME
変数の値を確認できます。
- 値が
$HOME\.dotnet\tools
の場合、PowerShell は .NET グローバル ツールを使用してインストールされています。 - 値が
$Env:ProgramFiles\PowerShell\7
の場合、PowerShell は MSI パッケージとして、または X86 または x64 プロセッサを搭載したコンピューターに Winget を使用してインストールされています。 - 値が
$Env:ProgramFiles\WindowsApps\
で始まる場合、PowerShell は Microsoft Store パッケージとして、または ARM プロセッサを搭載したコンピューターに Winget を使用してインストールされています。 - 値がそれ以外の場合は、PowerShell は ZIP パッケージとしてインストールされている可能性があります。
MSI パッケージを使用してインストールした場合、その情報は [プログラムと機能] コントロール パネルにも表示されます。
PowerShell が Winget を使用してアップグレードできるかを確認するには、次のコマンドを実行します。
winget list --name PowerShell --upgrade-available
利用可能なアップグレードがある場合、出力には利用可能な最新バージョンが表示されます。
Note
PowerShell は、アップグレード時に LTS バージョンから LTS 以外のバージョンにアップグレードされません。 LTS の最新バージョン (たとえば、7.2.3 から 7.2.24) にのみアップグレードされます。 LTS リリースから新しい安定版または次の LTS にアップグレードするには、そのリリースの MSI を使用して新しいバージョンをインストールする必要があります。
インストールされているバージョンが LTS バージョンでない場合、PowerShell は最新の安定版バージョンにアップグレードします。
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.4.6-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.4.6-win-arm64.zip
# Set up remoting to PowerShell 7
Set-Location .\PowerShell-7.4.6-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.4.6
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 つの方法があります。
- オフライン: Nano Server VHD をマウントし、zip ファイルの中身をマウント イメージ内の選択した場所に展開します。
- オンライン: zip ファイルを PowerShell セッションを介して転送し、選択した場所にそれを展開します。
どちらの場合も、Windows x64 ZIP リリース パッケージが必要です。 PowerShell の "管理者" インスタンス内でコマンドを実行してください。
PowerShell のオフラインでの展開
- お好みの zip ユーティリティを使用して、マウントされた Nano Server イメージ内のディレクトリにパッケージを解凍します。
- イメージをマウント解除し、ブートします。
- Windows PowerShell の組み込みインスタンスに接続します。
- 「別のインスタンスのテクニック」の、リモート エンドポイントを作成する手順に従います。
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.4.6-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.4.6-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 のバージョン
Microsoft は、PowerShell がサポート終了になるか、Windows の該当バージョンがサポート終了になるまで PowerShell をサポートします。
- Windows Server 2022、Windows Server Core 2022、および Windows Server Nano ビルド 1809 の x64 用 PowerShell 7.2、PowerShell 7.4、および PowerShell 7.5-preview を含む Docker イメージは、Microsoft アーティファクト レジストリから入手できます
- PowerShell 7.2 以上は、Windows 10 ビルド 1607 以上、Windows 11、Windows Server 2016 以上、Windows Server Nano ビルド 1809 以上にインストールできます
Note
Windows の特定のバージョンのサポートは、Microsoft サポート ライフサイクル ポリシーによって決まります。 詳細については、次を参照してください。
winver.exe
を実行することで、使用しているバージョンを確認できます。
インストールのサポート
Microsoft は、このドキュメントでインストール方法をサポートしています。 他のソースには、サードパーティの別のインストール方法を利用できる可能性があります。 そのようなツールと方法は機能するかもしれませんが、Microsoft ではそれらの方法をサポートできません。
PowerShell