I've seen many people report that they are running powershell custom actions
successfully but I can't seem to find any examples of how they do it. My goal
is to run powershell silently. I'm trying to do it as follows:
<DirectoryRef Id="INSTALLDIR">
<Component Id="SampleScriptPS1" Guid="*">
<File Id="SampleScriptPS1" Name="SampleScript.ps1"/>
</Component>
</DirectoryRef>
<Property Id="POWERSHELLEXE">
<RegistrySearch Id="POWERSHELLEXE"
Root="HKLM"
Key="SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell"
Name="Path"
Type="raw"/>
</Property>
<CustomAction Id="SetPSCmd"
Property="PSCmd"
Value=""[POWERSHELLEXE]" [#SampleScriptPS1]"
Execute="immediate"
Return="check"/>
<CustomAction Id="PSCmd"
BinaryKey="WixCA"
DllEntry="CAQuietExec"
Execute="deferred"
Return="check"/>
<InstallExecuteSequence>
<Custom Action="SetPSCmd" Before="PSCmd"/>
<Custom Action="PSCmd" After="InstallFiles"/>
</InstallExecuteSequence>
When I run my installer I notice that the progress bar moves to about halfway
then stops moving. I can see the powershell process in task manager but it is
not using up any CPU. When I look at the log file (installer is still
"running") I see the following as the last lines of the log:
MSI (s) (B4:10) [11:33:19:092]: Executing op: ActionStart(Name=PSCmd,,)
MSI (s) (B4:10) [11:33:19:136]: Executing op:
CustomActionSchedule(Action=PSCmd,ActionType=1025,Source=BinaryData,Target=CAQuietExec,CustomActionData="C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe"
C:\InstallDir\SampleScript.ps1)
When I get tired of waiting I'll explicitly kill the powershell process which
allows the installer to continue, the custom action fails, and the installer
rollsback. When I look at the log again I now see the following immediately
following the log text above:
MSI (s) (B4:94) [11:33:19:157]: Invoking remote custom action. DLL:
C:\Windows\Installer\MSI374B.tmp, Entrypoint: CAQuietExec
MSI (s) (B4:2C) [11:33:19:160]: Generating random cookie.
MSI (s) (B4:2C) [11:33:19:180]: Created Custom Action Server with PID 3816
(0xEE8).
MSI (s) (B4:EC) [11:33:19:282]: Running as a service.
MSI (s) (B4:EC) [11:33:19:289]: Hello, I'm your 32bit Impersonated custom
action server.
CAQuietExec: Error 0xffffffff: Command line returned an error.
CAQuietExec: Error 0xffffffff: CAQuietExec Failed
Action ended 11:37:43: InstallFinalize. Return value 3.
I don't think this is a bug in CAQuietExec as I can use this pattern for
running other scripts, such as sqlcmd scripts. Am I doing something obviously
stupid here?
Edwin G. Castro
Software Developer - Staff
Electronic Banking Services
Fiserv
Office: 503-746-0643
Fax: 503-617-0291
www.fiserv.com<http://www.fiserv.com/>
P Please consider the environment before printing this e-mail
------------------------------------------------------------------------------
Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are
powering Web 2.0 with engaging, cross-platform capabilities. Quickly and
easily build your RIAs with Flex Builder, the Eclipse(TM)based development
software that enables intelligent coding and step-through debugging.
Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com
_______________________________________________
WiX-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wix-users