LOL, I just saw that. Just as a side note, this attribute has to be put into the CA running your custom code. Setting it on the "Set" CA (ex. "SetDropDatabaseCustomActionData") does absolutely nothing.
-----Original Message----- From: Hoover, Jacob [mailto:jacob.hoo...@greenheck.com] Sent: October-23-13 1:41 PM To: General discussion about the WiX toolset. Subject: Re: [WiX-users] Hiding CustomActionData values in MSI logs Take a look at CustomActrion/@HideTarget -----Original Message----- From: Tunney, Stephen [mailto:stephen.tun...@nuance.com] Sent: Wednesday, October 23, 2013 12:25 PM To: General discussion for Windows Installer XML toolset. Subject: [WiX-users] Hiding CustomActionData values in MSI logs Hello all, I have several deferred CAs in my application and I'm using the CustomActionData to pass in several properties into them. However I am seeing the following in my MSI logs (asterisks added where usernames and passwords exposed for corporate security by hand), obviously I want parts of it hidden in the MSI logs for security puposes for our customers: MSI (s) (8C:BC) [13:15:51:279]: Executing op: ActionStart(Name=EQDropDatabase,,) Action 13:15:51: EQDropDatabase. MSI (s) (8C:BC) [13:15:51:281]: Executing op: CustomActionSchedule(Action=EQDropDatabase,ActionType=1025,Source=BinaryData,Target=DropDatabase,CustomActionData=RUNTIME_DATABASE_LOGON_TYPE=WinAuth|SERVICE_USERNAME=MY_DOMAIN\me|SERVICE_PASSWORD=MyPassword12##34|ODBC_CONNECTION_STRING=Driver={SQL Server};Server=.\SQLEXPRESS;Trusted_Connection=Yes;) Here is an example of the WXS code I have that is causing these issues: <?xml version="1.0" encoding="UTF-8"?> <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> <Fragment> <Property Id="EQDropDatabase" Hidden="yes" Secure="yes" /> <Property Id="EQCreateDatabase" Hidden="yes" /> <Property Id="EQExecuteSQLFromBinary" Hidden="yes" /> <Property Id="EQSetUserLogonAsServiceRights" Hidden="yes" /> <Property Id="EQSetSQLLogins" Hidden="yes" /> <CustomAction Id="CheckDatabaseExists" BinaryKey="EQCA.Net" DllEntry="CheckDatabaseExists" Execute="immediate"/> <CustomAction Id="SetSERVICE_USERNAME" BinaryKey="EQCA.Net" DllEntry="SetSERVICE_USERNAME" Execute="immediate"/> <CustomAction Id="SetCASNAME" BinaryKey="EQCA.Net" DllEntry="SetCASNAME" Execute="immediate"/> <CustomAction Id="SetDropDatabaseCustomActionData" Property="EQDropDatabase" Value="RUNTIME_DATABASE_LOGON_TYPE=[RUNTIME_DATABASE_LOGON_TYPE]|SERVICE_USERNAME=[SERVICE_USERNAME]|SERVICE_PASSWORD=[SERVICE_PASSWORD]|ODBC_CONNECTION_STRING=[ODBC_CONNECTION_STRING]|RUNTIME_DATABASE_NAME=[RUNTIME_DATABASE_NAME]|EQCAS_SCRIPT=[EQCAS_SCRIPT]" /> <CustomAction Id="EQDropDatabase" BinaryKey="EQCA.Net" DllEntry="DropDatabase" Execute="deferred" /> <CustomAction Id="SetCreateDatabaseCustomActionData" Property="EQCreateDatabase" Value="RUNTIME_DATABASE_LOGON_TYPE=[RUNTIME_DATABASE_LOGON_TYPE]|SERVICE_USERNAME=[SERVICE_USERNAME]|SERVICE_PASSWORD=[SERVICE_PASSWORD]|ODBC_CONNECTION_STRING=[ODBC_CONNECTION_STRING]|RUNTIME_DATABASE_NAME=[RUNTIME_DATABASE_NAME]|EQCAS_SCRIPT=[EQCAS_SCRIPT]" /> <CustomAction Id="EQCreateDatabase" BinaryKey="EQCA.Net" DllEntry="CreateDatabase" Execute="deferred" /> <CustomAction Id="SetPopulateDatabaseCustomActionData" Property="EQExecuteSQLFromBinary" Value="RUNTIME_DATABASE_LOGON_TYPE=[RUNTIME_DATABASE_LOGON_TYPE]|SERVICE_USERNAME=[SERVICE_USERNAME]|SERVICE_PASSWORD=[SERVICE_PASSWORD]|ODBC_CONNECTION_STRING=[ODBC_CONNECTION_STRING]|RUNTIME_DATABASE_NAME=[RUNTIME_DATABASE_NAME]|EQCAS_SCRIPT=[EQCAS_SCRIPT]" /> <CustomAction Id="EQExecuteSQLFromBinary" BinaryKey="EQCA.Net" DllEntry="RunAsSQL" Execute="deferred" /> <CustomAction Id="SetPopulateUserLogonAsServiceRightsCustomActionData" Property="EQSetUserLogonAsServiceRights" Value="[SERVICE_USERNAME]" /> <CustomAction Id="EQSetUserLogonAsServiceRights" BinaryKey="EQCA.Net" DllEntry="AddUserToLocalLogonAsServiceRights" Execute="deferred" Impersonate="no"/> <CustomAction Id="SetCreateSQLLoginsCustomActionData" Property="EQSetSQLLogins" Value="RUNTIME_DATABASE_LOGON_TYPE=[RUNTIME_DATABASE_LOGON_TYPE]|SERVICE_USERNAME=[SERVICE_USERNAME]|SERVICE_PASSWORD=[SERVICE_PASSWORD]|ODBC_CONNECTION_STRING=[ODBC_CONNECTION_STRING]|RUNTIME_DATABASE_NAME=[RUNTIME_DATABASE_NAME]" /> <CustomAction Id="EQSetSQLLogins" BinaryKey="EQCA.Net" DllEntry="CreateSQLLogins" Execute="deferred" /> <InstallUISequence> <Custom Action="SetSERVICE_USERNAME" Overridable="yes" Before="LaunchConditions"><![CDATA[1]]></Custom> <Custom Action="SetCASNAME" Overridable="yes" Before="LaunchConditions"><![CDATA[1]]></Custom> </InstallUISequence> <InstallExecuteSequence> <Custom Action="SetDropDatabaseCustomActionData" Before="EQDropDatabase"><![CDATA[1]]></Custom> <Custom Action="SetCreateDatabaseCustomActionData" Before="EQCreateDatabase"><![CDATA[1]]></Custom> <Custom Action="SetPopulateDatabaseCustomActionData" Before="EQExecuteSQLFromBinary"><![CDATA[1]]></Custom> <Custom Action="SetCreateSQLLoginsCustomActionData" Before="EQSetSQLLogins"><![CDATA[1]]></Custom> <Custom Action="SetPopulateUserLogonAsServiceRightsCustomActionData" Before="EQSetUserLogonAsServiceRights"><![CDATA[1]]></Custom> <Custom Action="EQSetUserLogonAsServiceRights" Overridable="yes" Before="InstallServices"><![CDATA[INSTALLSERVICE]]></Custom> <!-- DROP_DATABASE = "1" CREATE_DATABASE = "1" --> <Custom Action="EQSetSQLLogins" Overridable="yes" Before="EQCreateDatabase"><![CDATA[RUNTIME_DATABASE_EXISTS = "1" OR (CREATE_DATABASE = "1" AND ((RUNTIME_DATABASE_EXISTS = "1" AND DROP_DATABASE = "1") OR RUNTIME_DATABASE_EXISTS = "0"))]]></Custom> <Custom Action="EQDropDatabase" Overridable="yes" Before="EQCreateDatabase"><![CDATA[RUNTIME_DATABASE_EXISTS = "1" AND DROP_DATABASE = "1"]]></Custom> <Custom Action="EQCreateDatabase" Overridable="yes" Before="EQExecuteSQLFromBinary"><![CDATA[CREATE_DATABASE = "1" AND ((RUNTIME_DATABASE_EXISTS = "1" AND DROP_DATABASE = "1") OR RUNTIME_DATABASE_EXISTS = "0")]]></Custom> <Custom Action="EQExecuteSQLFromBinary" Overridable="yes" Before="InstallServices"><![CDATA[CREATE_DATABASE = "1" AND ((RUNTIME_DATABASE_EXISTS = "1" AND DROP_DATABASE = "1") OR RUNTIME_DATABASE_EXISTS = "0")]]></Custom> </InstallExecuteSequence> </Fragment> </Wix> ------------------------------------------------------------------------------ October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register > http://pubads.g.doubleclick.net/gampad/clk?id=60135991&iu=/4140/ostg.clktrk _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------------ October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register > http://pubads.g.doubleclick.net/gampad/clk?id=60135991&iu=/4140/ostg.clktrk _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------------ October Webinars: Code for Performance Free Intel webinars can help you accelerate application performance. Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from the latest Intel processors and coprocessors. See abstracts and register > http://pubads.g.doubleclick.net/gampad/clk?id=60135991&iu=/4140/ostg.clktrk _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users