From cbc183bfdb162019ec1983162fb23c6139f11e6e Mon Sep 17 00:00:00 2001 From: Bryan Roe Date: Wed, 24 Jul 2019 22:11:05 -0700 Subject: [PATCH] Modified, so 32-bit PowerShell is used from SysWow64 on 64-bit windows, to work around issue where PowerShell will respawn itself --- modules/win-terminal.js | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/modules/win-terminal.js b/modules/win-terminal.js index f7a51a6..65f82f9 100644 --- a/modules/win-terminal.js +++ b/modules/win-terminal.js @@ -134,7 +134,14 @@ function windows_terminal() { this.PowerShellCapable = function() { - return (require('fs').existsSync(process.env['windir'] + '\\System32\\WindowsPowerShell\\v1.0\\powershell.exe')); + if (require('os').arch() == 'x64') + { + return (require('fs').existsSync(process.env['windir'] + '\\SysWow64\\WindowsPowerShell\\v1.0\\powershell.exe')); + } + else + { + return (require('fs').existsSync(process.env['windir'] + '\\System32\\WindowsPowerShell\\v1.0\\powershell.exe')); + } } this.StartEx = function Start(CONSOLE_SCREEN_WIDTH, CONSOLE_SCREEN_HEIGHT, terminalTarget) @@ -220,7 +227,14 @@ function windows_terminal() { } this.StartPowerShell = function StartPowerShell(CONSOLE_SCREEN_WIDTH, CONSOLE_SCREEN_HEIGHT) { - return (this.StartEx(CONSOLE_SCREEN_WIDTH, CONSOLE_SCREEN_HEIGHT, process.env['windir'] + '\\System32\\WindowsPowerShell\\v1.0\\powershell.exe')); + if (require('os').arch() == 'x64') + { + return (this.StartEx(CONSOLE_SCREEN_WIDTH, CONSOLE_SCREEN_HEIGHT, process.env['windir'] + '\\SysWow64\\WindowsPowerShell\\v1.0\\powershell.exe')); + } + else + { + return (this.StartEx(CONSOLE_SCREEN_WIDTH, CONSOLE_SCREEN_HEIGHT, process.env['windir'] + '\\System32\\WindowsPowerShell\\v1.0\\powershell.exe')); + } } this._stop = function () {