32-bit process invocation from 64 bit application running under LocalSystem account

Hi,I have a 64-bit application that is running as a windows service under LocalSystem account of a 64-Bit OS machine. I am using wyUpdate AutomaticUpdater to update this application. As part of one update, I need to install 2013_vcredist_x64.exe before the update. I tried to achieve this by adding the vcredist_x64.exe into temp folder and executing it before update is done.

However, I am facing the following problem: Since the application is running under LocalSystem account, wyUpdate.exe is creating the temp folder under C:\Windows\System32\config\systemprofile and copying the vcredist_64.exe to that folder. However, this installer exe is a 32 bit process (meant for 64 bit machines) and hence when invoked from any folder under C:\Windows\System32, results in AppCrash. However, when I manually try to invoke this installer exe from C:\Windows\SysWOW64 or any folder other than C:\Windows\System32, it works perfectly fine.

Can you help me out what I can do now to achieve the update? Any help is immensely appreciated.

You need to give us a lot more information. What exactly is the crash? Logs are needed. wyUpdate doesn't do anything special when launching apps -- so whatever is crashing the app is the problem of the app. But if you provide logs we'll be able to give you some help.

Hi,

The app that is crashing is 2013 vcredist_x64.exe that is downloaded from Microsoft website. You can easily reproduce this if you download this exe from https://www.microsoft.com/en-in/download/details.aspx?id=40784 and place it under any folder or sub-folder under C:\Windows\System32 on a 64 bit OS, and simple invoke it. It will result in AppCrash.

The problem here is not with my app or wyUpdate or with Microsoft's vcredist_x64 exe but the location from which this is invoked. A 32-bit process exe (vcredist_x64.exe) cannot be invoked from C:\Windows\System32 folder or any subfolder within it. It has to be invoked from C:\Windows\SysWOW64 or anywhere out of C:\Windows\System32 folder.

But for a application that is running under localSystem account and trying to use wyUpdate's temp folder to store and invoke the vcredist_x64 exe, it is getting stored under C:\Windows\System32 as the LocalSystem's temp folder is within this. (C:\Windows\System32\config\systemprofile)

Pls let me know if this is still unclear. I can share a sample wyUpdate application that will simulate the problem.

Regards,Srividya

It's a bug in vcredist_x64.exe. Sorry. Other 32-bit apps (and 64-bit apps) work fine in that folder. I'd report it to Microsoft if I were you, maybe they'll give you a hotfix release (sometimes they do things like that). If you report it they'll very likely fix it in future version of the redistributable.

You could always use another folder like Common AppData folder, and then delete the file as part of a batch file after the update has completed.

Hi,

Unfortunately this is not a bug in vcredist_x64.exe.

Because the same problem occurs even if I try to invoke "wybuild-setup.exe" downloaded from your website (http://wyday.com/wybuild/downloading.php) from within C:\Windows\System32 folder.I get a message "Error launching installer"

As per your answer, I would be forced to conclude that there is a bug even in wybuild-setup.exe since it cannot be executed from within C:\Windows\System32 folder. Is that the right conclusion?

Regards,Srividya

As per your answer, I would be forced to conclude that there is a bug even in wybuild-setup.exe since it cannot be executed from within C:\Windows\System32 folder. Is that the right conclusion?

No, unfortunately it's either a bug or undefined behavior in Windows. At any rate, the solution is to execute the file elsewhere (e.g. Common AppData folder).