[wix-users] Running PowerShell script after installer finishes

Edwin Castro egcastr at gmail.com
Thu Jun 14 22:23:51 PDT 2018


Thanks for the details.

I don't see anything obviously wrong.

Are you using absolute paths for files? The working directory might not be
what you expect. In your original email it looks like the script path is
absolute but powershell.exe is not. Don't know if that makes a difference.

What does your verbose log say?

--
Edwin G. Castro


On Thu, Jun 14, 2018, 22:11 manish duggal <duggal_sunny at yahoo.com> wrote:

> Hello Edwin,
>
> Here are the details:
>
> 1. I have Script.ps1 which consist of command to invoke a PowerShell
> module and cmdlet. The Script.ps1 consist of the following command:
>
> Start-Process "powershell.exe" -ArgumentList "-NoProfile -ExecutionPolicy
> Bypass -Command `"& Import-Module PowerShellModule.psm1; Cmdlet `" "  *-Verb
> RunAs*
>
>
> Start-Process cmdlet will launch a new PowerShell process elevated (*-Verb
> RunAs*)
>
> 2. To call my Script.ps1 with above details, I run following detail on
> command prompt:
>         "powershell.exe" -NoProfile -NonInteractive -InputFormat None
> -ExecutionPolicy Bypass -Command "& 'Script.ps1' ;"
>
> So you are right in assuming that I try the script invocation on a command
> prompt. And due to Start-Process with "-Verb RunAs" the command in
> Script.ps1 launches elevated.
>
> I hope this clarifies the scenario I mentioned to try the script manually.
>
> Please let me know how can I mimic this in WIX to call Script.ps1 after
> installer finishes. Right now, my attempt didnt really work to call the
> Script.ps1 and thus not running new PowerShell process elevated.
>
> Thx
> Manish
> On Thursday, June 14, 2018, 9:08:33 p.m. PDT, Edwin Castro <
> egcastr at gmail.com> wrote:
>
>
> Yes, the details matter. I still don't know how you manually invoked the
> script so I can't help.
>
> Normally executables can be configured with a manifest that tells the
> operating system that they must be executed elevated. Clearly such a
> manifest would apply to powershell.exe itself and not to your script so I
> don't know how you got the script to "ask for elevation" manually.
>
> Once you share the details I might be able to help you figure out how to
> duplicate the behavior in MSI. The behavior you are seeing with the MSI is
> what I would expect under normal circumstances running your script.
>
> Without more information I can only guess that in your manually case you
> actually elevated powershell or the command prompt yourself and then ran
> the script. Is that what you mean? That the script works properly when
> executed in an elevated process?
>
> --
> Edwin G. Castro
>
>
> On Thu, Jun 14, 2018, 20:35 <duggal_sunny at yahoo.com> wrote:
>
> By manual, I mean out of installer actions. I just wanted to say that
> powershell command I specified in the installer does work fine when ran
> independent of installer.
>
> Thx
> Manish
>
> Sent from my iPhone
>
> On Jun 14, 2018, at 6:39 PM, Edwin Castro <egcastr at gmail.com> wrote:
>
> What do you mean by "I was able to invoke my script manually and it does
> ask for the elevation"? Which precise steps do you take to invoke the
> script manually?
>
> --
> Edwin G. Castro
>
> On Thu, Jun 14, 2018, 17:23 manish duggal via wix-users <
> wix-users at lists.wixtoolset.org> wrote:
>
> Hi
> I have a requirement to launch a powershell script after my installer
> finishes. My requirement is to launch it and ask for elevation if needed. I
> was able to invoke my script manually and it does ask for the elevation.
> However, the custom action in installer doesn't somehow launching the
> script.
> Here is my custom action detail
> <Property Id='LaunchAction' Value='TO_BE_OVERRIDDEN' />
> <SetProperty Id='LaunchAction'                      Value='"powershell.exe"
> -NoProfile -NonInteractive -InputFormat None -ExecutionPolicy Bypass
> -Command "& '[INSTALLDIR]Script.ps1' -InstallDir
> '[INSTALLDIR]';"'                     Before='LaunchAction
>                Sequence='execute' />        <CustomAction
> Id='LaunchAction'                      BinaryKey='WixCA'
>   DllEntry='CAQuietExec64'                      Execute='immediate'
>               Return='ignore'                      Impersonate='no'/>
> Why it is not getting invoked correctly after installer finishes? I looked
> at "WixShellExecTarget" but not sure if this could really be used to run a
> PowerShell script with parameters.
> Appreciate help in this regard.
> ThxManish
>
> ____________________________________________________________________
> WiX Toolset Users Mailing List provided by FireGiant
> http://www.firegiant.com/
>
>


More information about the wix-users mailing list