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 リポジトリの各バージョンのリリース ページに移動します。
- 安定版リリース: https://aka.ms/powershell-release?tag=stable
- LTS リリース: https://aka.ms/powershell-release?tag=lts
- プレビュー リリース: https://aka.ms/powershell-release?tag=preview
すべてのパッケージのダウンロード リンクは、リリース ページの [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、Microsoft Endpoint Configuration Manager、または設定の対話型 MU ダイアログのいずれでも同じです。
PowerShell 7.2 の 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 イベント ログのマニフェストを登録するためのオプションを制御します。
すべてのインストール オプションを有効にして PowerShell をサイレント インストールする方法を、次の例に示します。
msiexec.exe /package PowerShell-7.2.5-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
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.5.0 winget
PowerShell Preview Microsoft.PowerShell.Preview 7.3.0.3 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 や 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.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.5-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.5-win-Arm64.zip
# Set up remoting to PowerShell 7
Set-Location .\PowerShell-7.2.5-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.5
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.2.5-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.5-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) | 7.3 (プレビュー) |
---|---|---|---|---|
✅ 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.2 (LTS-current) | 7.3 (プレビュー) |
---|---|---|---|
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 は、そのような方法をサポートすることはできません。