I found the FileExists function doesn't like the quotes around the filename so I moved the code which adds the quotes to after the FileExists check within installer.js e.g.: if (cmdLine.indexOf(" ") != -1 && cmdLine.substr(0,1) != '"') cmdLine='"'+cmdLine+'"'; if (!FileExists(cmdLine)) { programs.fail=true; cmdName=(cmdName=='regb') ? 'Reg Before' : (cmdName=='rega') ? 'Reg After' : cmdName; WriteLogLine(cmdName+' '+result+' (returned code '+ReturnCode+'): RegEdit /S "'+cmdLine+'"'); return; } became: if (!FileExists(cmdLine)) { programs.fail=true; cmdName=(cmdName=='regb') ? 'Reg Before' : (cmdName=='rega') ? 'Reg After' : cmdName; WriteLogLine(cmdName+' '+result+' (returned code '+ReturnCode+'): RegEdit /S "'+cmdLine+'"'); return; } if (cmdLine.indexOf(" ") != -1 && cmdLine.substr(0,1) != '"') cmdLine='"'+cmdLine+'"'; I also made the following change in core.js to remove the security prompt that occurs everytime sleep.exe is called: sleepCmd=wpipath+"Tools\\Sleep.exe"; became: sleepCmd="cmd /c "+wpipath+"Tools\\Sleep.exe";