From 0c601592e3a94eaafdd4e18be9a8d264a46a2429 Mon Sep 17 00:00:00 2001 From: Eugene Pankov Date: Thu, 23 Dec 2021 14:15:48 +0100 Subject: [PATCH] detect store-installed powershell - fixes #5212 --- tabby-local/src/shells/windowsStock.ts | 29 +++++++++++++------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/tabby-local/src/shells/windowsStock.ts b/tabby-local/src/shells/windowsStock.ts index f5951b0b4c..472a7bbef4 100644 --- a/tabby-local/src/shells/windowsStock.ts +++ b/tabby-local/src/shells/windowsStock.ts @@ -73,21 +73,22 @@ export class WindowsStockShellsProvider extends ShellProvider { } private async getPowerShellPath () { - const ps = 'powershell.exe' - - if (!await promisify(hasbin)(ps)) { - for (const searchPath of [ - `${process.env.SystemRoot}\\System32\\WindowsPowerShell\\v1.0`, - `${process.env.SystemRoot}\\System32`, - process.env.SystemRoot ?? 'C:\\Windows', - ]) { - const newPath = path.join(searchPath, ps) - try { - await fs.stat(newPath) - return newPath - } catch { } + for (const name of ['pwsh.exe', 'powershell.exe']) { + if (await promisify(hasbin)(name)) { + return name } } - return ps + for (const psPath of [ + `${process.env.USERPROFILE}\\AppData\\Local\\Microsoft\\WindowsApps\\pwsh.exe`, + `${process.env.SystemRoot}\\System32\\WindowsPowerShell\\v1.0\\powershell.exe`, + `${process.env.SystemRoot}\\System32\\powershell.exe`, + (process.env.SystemRoot ?? 'C:\\Windows') + '\\powerhshell.exe', + ]) { + try { + await fs.stat(psPath) + return psPath + } catch { } + } + return 'powershell.exe' } }