Windows installer failing with error 1603

1,117 views
Skip to first unread message

Justin Dugan

unread,
Jun 8, 2016, 4:36:18 PM6/8/16
to Ansible Project
I am trying to install software on some windows machines using ansible. I have tried raw and win_package to do this. Both of them result in a 1603 error from windows. The same command run fine when logged into the machine using RDP using the same user account. 

- name: install RDE
  raw: "c:\\Temp\\RDEInstall.exe /passive SILENT_INSTALL=true'"
  register: raw_output
- debug: var=raw_output.stdout
- debug: var=raw_output.stderr


This produces the following output:

TASK [RDE : install RDE] *******************************************************
ok: [installtest]

TASK [RDE : debug] *************************************************************
ok: [installtest] => {
    "raw_output.stdout": ""
}

TASK [RDE : debug] *************************************************************
ok: [installtest] => {
    "raw_output.stderr": ""
}


The Windows application log shows a return code of 1603 for event 1033 for this install. As stated before, if the raw command is executed on the machine (e.g. powershell window) via RDP, it installs fine. This leads me to believe the installer is missing access to something when it's executed via ansible that it has when executed on the machine. 

Any help would be appreciated.

Thanks!

J Hawkesworth

unread,
Jun 9, 2016, 5:48:32 AM6/9/16
to Ansible Project
1603 is unfortunately not a lot of help.  It seems to mean 'something went wrong' but doesn't detail why.

Most msi type installers can write a log of what is going on I suggest you try running it with whatever command line options are available to get it to generate a log and look through that (probably from the bottom up - there's often a lot of noise in msi logs).

Annoyingly a lot of installers still expect a GUI unless you explicitly tell them not to use the GUI.  

James Hong

unread,
Jun 9, 2016, 6:03:29 AM6/9/16
to Ansible Project
ansible uses winrm and you dont get full permission in the remote session.
try "invoke-command" with explicit credentials 

eg 
$Username = 'admin'
$Password = 'password'
$pass = ConvertTo-SecureString -AsPlainText $Password -Force
$Cred = New-Object System.Management.Automation.PSCredential -ArgumentList $Username,$pass
Invoke-command –computername . -credential $cred –scriptblock {rdsinstall.exe}



Justin Dugan

unread,
Jun 9, 2016, 9:42:30 AM6/9/16
to Ansible Project
I looked at the log generated by the installer; however, it doesn't help me at all. Maybe it will provide some incite for you? Here are the entries from the failure:

MSI (s) (DC:58) [14:37:35:944]: Invoking remote custom action. DLL: C:\Windows\Installer\MSI1FB5.tmp, Entrypoint: InstallExecuteSeq
Action start 14:37:35: InstallExecuteSeq.
SFXCA: Extracting custom action to temporary directory: C:\Windows\Installer\MSI1FB5.tmp-\
SFXCA: Binding to CLR version v4.0.30319
Calling custom action CustomActions!CompanyNameWix.CustomActions.InstallExecuteSeq
CustomAction InstallExecuteSeq returned actual error code 1603 (note this may not be 100% accurate if translation happened inside sandbox)
Action ended 14:37:36: InstallExecuteSeq. Return value 3.
Action ended 14:37:36: INSTALL. Return value 3.

... *** a bunch of properties listed *** ...

MSI (s) (DC:FC) [14:37:36:911]: Note: 1: 1708 
MSI (s) (DC:FC) [14:37:36:911]: Note: 1: 2205 2:  3: Error 
MSI (s) (DC:FC) [14:37:36:911]: Note: 1: 2228 2:  3: Error 4: SELECT `Message` FROM `Error` WHERE `Error` = 1708 
MSI (s) (DC:FC) [14:37:36:911]: Note: 1: 2205 2:  3: Error 
MSI (s) (DC:FC) [14:37:36:911]: Note: 1: 2228 2:  3: Error 4: SELECT `Message` FROM `Error` WHERE `Error` = 1709 
MSI (s) (DC:FC) [14:37:36:911]: Product: <product name> -- Installation failed.

MSI (s) (DC:FC) [14:37:36:935]: Windows Installer installed the product. Product Name: <product name>. Product Version: 1.10.97. Product Language: 1033. Manufacturer: <company>. Installation success or error status: 1603.

MSI (s) (DC:FC) [14:37:36:937]: Deferring clean up of packages/files, if any exist
MSI (s) (DC:FC) [14:37:36:937]: MainEngineThread is returning 1603
MSI (s) (DC:B0) [14:37:36:939]: RESTART MANAGER: Session closed.
MSI (s) (DC:B0) [14:37:36:939]: No System Restore sequence number for this installation.
=== Logging stopped: 6/8/2016  14:37:36 ===
MSI (s) (DC:B0) [14:37:36:940]: User policy value 'DisableRollback' is 0
MSI (s) (DC:B0) [14:37:36:940]: Machine policy value 'DisableRollback' is 0
MSI (s) (DC:B0) [14:37:36:940]: Incrementing counter to disable shutdown. Counter after increment: 0
MSI (s) (DC:B0) [14:37:36:940]: Note: 1: 1402 2: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\Rollback\Scripts 3: 2 
MSI (s) (DC:B0) [14:37:36:940]: Note: 1: 1402 2: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\Rollback\Scripts 3: 2 
MSI (s) (DC:B0) [14:37:36:941]: Decrementing counter to disable shutdown. If counter >= 0, shutdown will be denied.  Counter after decrement: -1
MSI (s) (DC:B0) [14:37:36:941]: Restoring environment variables
MSI (s) (DC:B0) [14:37:36:941]: Destroying RemoteAPI object.
MSI (s) (DC:4C) [14:37:36:941]: Custom Action Manager thread ending.
MSI (c) (14:EC) [14:37:36:942]: Decrementing counter to disable shutdown. If counter >= 0, shutdown will be denied.  Counter after decrement: -1
MSI (c) (14:EC) [14:37:36:942]: MainEngineThread is returning 1603
=== Verbose logging stopped: 6/8/2016  14:37:36 ===


I seem to recall when I set up the JBoss Operations Network agent to do the install, I had to check "Allow service to interact with the desktop" in the service properties of the agent to get it to work. This is because the installer still pops up windows even though it's set to be an unattended install. Is there a general cli option to explicitly tell any installer not to use the GUI? Or is this something that has to be coded into the installer explicitly? 

Trond Hindenes

unread,
Jun 9, 2016, 4:02:22 PM6/9/16
to Ansible Project
it fails on a custom action, you need to open the msi to see what it does. For example, if customaction is a script requireing access to $host or other interactive environment it's gonna fail since you don't have that. Not much we can do about that I'm afraid :-(
Reply all
Reply to author
Forward
0 new messages