In creating a transform for this mess, my past choice to avoid, as long as possible, any package from IBM has been completely vindicated.
My client site uses either GP or SCCM to deploy so we need a totally silent install and it *must* be MSI-based. Here's what I had to do. The order here is screwed, as I'm just walking through the tables, noting where they're different to the base MSI:
- create a response transform and be sure to ignore the choice of using the local System account (property 'p_setDefaultInstallName' set to 'N', 'PROP_RSP_DB2.USERNAME' and 'PROP_RSP_DAS_USERNAME' set to the name to use) Go with using a new, specific account (much easier to leave the default, 'db2admin'). You will suffer a world of pain getting DB2 to do useful work if it's set up to use the System account.
- create a response file (one of IBM's Custom Actions requires it) and add it to the Binary table.
- ignore IBM's documentation that says that, if the license files exists in the 'DB2\License' folder, the installer will install it. It won't, so add the license file and have it installed to the [License] folder
- add a CA to add the license: db2licm -a "[LICENSE]db2exp_uw.lic"
- add a CA to extract the response file to [CURRENT_PROCESS_DIRECTORY]_DB2000 (seriously!)
- create a Type 51 CA to set RSP_FILE_PATH to [CURRENT_PROCESS_DIRECTORY]\<Name_Of_ResponseFile.RSP>
- remove the test for 'AdminUser or Privileged' from the conditions for all CAs
- set the property 'SILENT_MODE' to 'ON'
- remove the utterly spurious InstallShield CAs from ExecuteImmediate (everything after 'InstallFinalize')
- add a CA to add the logged-in user's account (and/or a domain group to which the user belongs) to the DB2ADMNS or DB2USERS local group (both of which IBM's silent-installer CA will create).
- forget about removing the explicit assignment of the user account you chose (e.g. db2admin) with 'Full Control' rights to the DB2 folders. The DB2 service process (I think) will just put them back again.