[wix-users] Running PowerShell script after installer finishes
manish duggal
duggal_sunny at yahoo.com
Thu Jun 14 22:11:04 PDT 2018
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.
ThxManish 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.
ThxManish
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