'Run With PowerShell 7' Right-Click Context Menu is Not Available if Default Program Is Not Notepad
See original GitHub issueSteps to reproduce
When installing PowerShell 7 (MSI Version), the installer allows the following option:
Add 'Run with PowerShell 7' context menu for PowerShell files
Screenshot A:
However, this option is only available if .ps1 files are set to open in Notepad (the default). If .ps1 files are set to open in Visual Studio Code by default, then this option disappears from the context menu.
Screenshot B (‘Run with PowerShell 7’ available):
Screenshot C (‘Run with PowerShell 7’ not available):
Most of the time I want .ps1 files to open in Visual Studio Code and therefore want to keep that as the default program for opening .ps1 files. However, doing so means I loose the right-click context menu for when I want to run certain .ps1 files directly in PowerShell 7 from their location. It would be better if it was always possible to right-click a .ps1 file and select ‘Run with PowerShell 7’, even when another application – such as Visual Studio Code – is the default program for that file type.
For PowerShell 7 (MSI Version), it’s possible to work around this to an extent by using the [Right-click > Open with] menu item, selecting the PowerShell 7 pwsh.exe and then use that in conjunction with using $PSScriptRoot as the path in the script. However, for PowerShell 7 (Microsoft Store Version) it’s a bit more complicated. Not only does the store version not have the ‘Run with PowerShell 7’ context menu option at all, but using the ‘Open with’ menu work-a-round is more burdensome as the file path contains the version number in it. I.E.
C:\Program Files\WindowsApps\Microsoft.PowerShell_7.1.0.0_x64__8wekyb3d8bbwe\pwsh.exe
This means the file path will keep changing every time PowerShell is updated and will therefore need to be manually set again every time PowerShell is updated.
Expected behavior
As long as PowerShell 7 is installed on the machine, the ‘Run with PowerShell 7’ context menu should always be available in the right-click menu for PowerShell .ps1 files, regardless of whether another application – such as Visual Studio Code – is the default program for that file type.
The ‘Run with PowerShell 7’ context menu should also be available to people who are using the Microsoft Store version of PowerShell 7.
Environment data
Name Value
---- -----
PSVersion 7.1.0
PSEdition Core
GitCommitId 7.1.0
OS Microsoft Windows 10.0.19042
Platform Win32NT
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0
Issue Analytics
- State:
- Created 3 years ago
- Reactions:10
- Comments:6
In powershell as admin:
Had the same issue, except that my .ps1 association was already set to Notepad.
Ended up modifying the reg key and now I got it working again. This is tested on the latest Win11 build as of this writing.