Reputation: 185
I have an installation for Caliber Author Suite (Micro Focus is the publisher) and my installation works when I run as system admin on the client using command prompt. I navigate to the ccmcache and run the exe with the following command line arguments:
caliber-authorsuite-115-hf7.exe /V"/qn NOADMIN=YES ALLCLIENT=YES" /S
However, when I try and install from SCCM, I get a 0x653(1619)
error. I am kind of at a loss at this point. I can't see anything in the logs that can point to anything, but honestly I may be looking in the wrong logs. If the installation works in CMD, it should work in SCCM afaik.
The deployment is set up as a script installer, and I have the line copied above into the "installation program" field. "Installation start in" field is blank. Any ideas?
EDIT: I added logging and here are the results of the attempted install:
=== Verbose logging started: 1/11/2019 10:21:23 Build type: SHIP UNICODE 5.00.7601.00 Calling process: C:\Windows\SysWOW64\MSIEXEC.EXE ===
MSI (c) (58:C4) [10:21:23:811]: Resetting cached policy values
MSI (c) (58:C4) [10:21:23:811]: Machine policy value 'Debug' is 0
MSI (c) (58:C4) [10:21:23:811]: ******* RunEngine:
******* Product: C:\Windows\system32\config\systemprofile\AppData\Local\Downloaded Installations\{B8AAF34B-B4DF-4C47-8BDA-C424E745859F}\Borland Caliber Author Suite.msi
******* Action:
******* CommandLine: **********
MSI (c) (58:C4) [10:21:23:813]: Client-side and UI is none or basic: Running entire install on the server.
MSI (c) (58:C4) [10:21:23:813]: Grabbed execution mutex.
MSI (c) (58:C4) [10:21:23:872]: Cloaking enabled.
MSI (c) (58:C4) [10:21:23:872]: Attempting to enable all disabled privileges before calling Install on Server
MSI (c) (58:C4) [10:21:23:887]: Incrementing counter to disable shutdown. Counter after increment: 0
MSI (s) (4C:D0) [10:21:23:921]: Running installation inside multi-package transaction C:\Windows\system32\config\systemprofile\AppData\Local\Downloaded Installations\{B8AAF34B-B4DF-4C47-8BDA-C424E745859F}\Borland Caliber Author Suite.msi
MSI (s) (4C:D0) [10:21:23:921]: Grabbed execution mutex.
MSI (s) (4C:84) [10:21:23:962]: Resetting cached policy values
MSI (s) (4C:84) [10:21:23:963]: Machine policy value 'Debug' is 0
MSI (s) (4C:84) [10:21:23:963]: ******* RunEngine:
******* Product: C:\Windows\system32\config\systemprofile\AppData\Local\Downloaded Installations\{B8AAF34B-B4DF-4C47-8BDA-C424E745859F}\Borland Caliber Author Suite.msi
******* Action:
******* CommandLine: **********
MSI (s) (4C:84) [10:21:23:964]: Note: 1: 2203 2: C:\Windows\system32\config\systemprofile\AppData\Local\Downloaded Installations\{B8AAF34B-B4DF-4C47-8BDA-C424E745859F}\Borland Caliber Author Suite.msi 3: -2147287037
MSI (s) (4C:84) [10:21:23:992]: MainEngineThread is returning 3
MSI (s) (4C:D0) [10:21:23:995]: User policy value 'DisableRollback' is 0
MSI (s) (4C:D0) [10:21:23:996]: Machine policy value 'DisableRollback' is 0
MSI (s) (4C:D0) [10:21:23:996]: Incrementing counter to disable shutdown. Counter after increment: 0
MSI (s) (4C:D0) [10:21:24:000]: Note: 1: 1402 2: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\Rollback\Scripts 3: 2
MSI (s) (4C:D0) [10:21:24:024]: Note: 1: 1402 2: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\Rollback\Scripts 3: 2
MSI (s) (4C:D0) [10:21:24:025]: Note: 1: 1402 2: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\InProgress 3: 2
MSI (s) (4C:D0) [10:21:24:025]: Note: 1: 1402 2: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\InProgress 3: 2
MSI (s) (4C:D0) [10:21:24:025]: Decrementing counter to disable shutdown. If counter >= 0, shutdown will be denied. Counter after decrement: -1
MSI (s) (4C:D0) [10:21:24:025]: Restoring environment variables
MSI (c) (58:C4) [10:21:24:029]: Decrementing counter to disable shutdown. If counter >= 0, shutdown will be denied. Counter after decrement: -1
MSI (c) (58:C4) [10:21:24:029]: MainEngineThread is returning 3
=== Verbose logging stopped: 1/11/2019 10:21:24 ===
Installation still works when run from elevated command prompt outside of SCCM.
EDIT 2: I set the program to install with a GUI, and kicked it off via SCCM/Software Center. I was able to click through, and then it failed on extracting the files and running the msi with "This installation package could not be opened. Verify that the package exists and that you can access it, or contact the application vendor to verify that this is a valid Windows Installer package". Of course this makes me think that I should re-download the installer from the vendor and update the content in SCCM - HOWEVER the installer still works fine if I kick it off manually from the cmmcache directory so it doesn't make sense that the package itself is corrupted or in any way the problem.
Upvotes: 0
Views: 1313
Reputation: 2619
This setup exe extracts an msi file into the (local) appdata of the user. (you can see this line in the log: C:\Windows\system32\config\systemprofile\AppData\Local\Downloaded Installations{B8AAF34B-B4DF-4C47-8BDA-C424E745859F}\Borland Caliber Author Suite.msi).
The problem is that the appdata of the system account actually lies within system32 and system32 is a wow redirected folder.
In general on a 64Bit Windows installation there is a copy for the programs (program files is the 64bit program files (x86) the 32bit folder, and the systme files (here system32 is the 64bit and syswow64 is the 32bit folder). The Wow64 emulation is responsible for checking if a program that is run is 32bit and if it tries to access one of the folders that it thinks is 32bit (on a 32Bit Windows system32 and program files exist as well and are the 32bit versions so some programs have this hardcoded) redirect this program to the respective other one.
Now as the systemprofile is a subfolder of system32 (unlike all other profiles which are stored in C:\users and are not wow redirected) it is redirected as well.
What seems to happen here is that your executable has some mechanism to extract the contents of it's msi to the "Downloaded Installations" folder in AppData and is a 64Bit executable (so its the system32\config\systemprofile). However for some reason it is configured to run the 32Bit msiexec.exe (you can see that in the first line of the log where it says C:\Windows\SysWOW64\MSIEXEC.EXE). When this file tries to access the path it is given by the exe wow translates the system32 path to syswow64 (although the msiexec.exe still thinks it is in system32) and the msi file can no longer be found. This never happens if you try manually because a normal user has the %localappdata% folder not redirected so 32bit and 64bit applications find it just the same.
Although there are methods to suppress the folder redirection it is not clear whether this would even work here because if msiexec.exe loads e.g. a dll from system32 and the redirection would be disabled it could crash, so the best idea here is to just extract the msi file (just start the installation manually and take it from the downloaded installations folder) and then deploy with the msi file directly. (If the exe installs any prerequisites before the msi it might be necessary to also install them)
Upvotes: 1