I guess I have to wonder.... Why run PowerShell period?
I mean, DTF is very powerful and robust. It's also possible to use DTF to write a managed custom action and call PowerShell code from there. The only argument I ever here for PowerShell is it's for guys who know how to script. These "scripters" are exactly the guys I *DON'T* want contributing to my installers. ?? Chris ---------------------------------------- From: "Steven Ogilvie" <steven.ogil...@titus.com> Sent: Wednesday, March 06, 2013 2:20 PM To: "General discussion for Windows Installer XML toolset." <wix-users@lists.sourceforge.net> Subject: Re: [WiX-users] Running PowerShell script... This is driving me crazy, how hard is it to run a PowerShell script... If I run it in a CMD prompt PowerShell.exe .\RegisterLicense.xml it works!!! My dev machine is Window 7 64 bit This DLL is not our DLL it is a 3rd party dll NServiceBus.Core.dll we can not change it... they have the PowerShell cmdlets within the DLL hence you need to import-module first then run install-license 2nd I am using the 64 bit MSI to do the testing So here is my code again: RegisterLicense.PS1 (I install this file, I have hard coded paths for now): # C: CD "C:\Program Files\TITUS\TITUS Services\Common" Import-Module "C:\Program Files\TITUS\TITUS Services\Common\NServiceBus.Core.dll" Install-License -Path "C:\Program Files\TITUS\TITUS Services\Common\License.xml" Getting the PowerShell path in Product.wxs: <!-- Check for PowerShell --> <Property Id="POWERSHELLEXE"> <RegistrySearch Id="POWERSHELLEXE" Type="raw" Root="HKLM" Key="SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" Name="Path" Win64="yes"/> </Property> <Condition Message="This application requires Windows PowerShell."> <![CDATA[Installed OR POWERSHELLEXE]]> </Condition> Install the powershell script: (this is in a merge module) <Component Id="cmp_RegisterNServiceBusLicense" Guid="{276C369D-BF32-472F-A7FC-24155DEB18DE}"> <File Id="file_RegisterNServiceBusLicense" KeyPath="yes" Source="..\$(var.resourcePath)\RegisterLicense.ps1" /> </Component> <Property Id="POWERSHELLEXE" Secure="yes" SuppressModularization="yes"/> Custom actions: <CustomAction Id="CA_SetNServiceBusLicense" Property="CA_NSERVICEBUSLICENSE" Value =""[POWERSHELLEXE]" -Version 3.0 -NoProfile -NonInteractive -InputFormat None -ExecutionPolicy Bypass -Command "& '[#file_RegisterNServiceBusLicense]' ; exit $$($Error.Count)"" /> <CustomAction Id="CA_NSERVICEBUSLICENSE" BinaryKey="WixCA" DllEntry="CAQuietExec64" Execute="deferred" Return="check" Impersonate="no" /> <UI> <ProgressText Action="CA_NSERVICEBUSLICENSE">CA: Installing NServiceBus license...</ProgressText> </UI> <InstallExecuteSequence> <Custom Action="CA_SetNServiceBusLicense" After=" InstallValidate "></Custom> <Custom Action="CA_NSERVICEBUSLICENSE" Before="InstallServices">NOT Installed</Custom> This is in the MSI log file after installed: (no registry update :( MSI (s) (5C:BC) [15:06:43:377]: PROPERTY CHANGE: Adding CA_NSERVICEBUSLICENSE.CA23A0DC_B2DE_4F2C_9E74_FD373F99E9D7 property. Its value is '"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -Version 3.0 -NoProfile -NonInteractive -InputFormat None -ExecutionPolicy Bypass -Command "& 'C:\Program Files\TITUS\TITUS Services\Common\RegisterLicense.ps1' ; exit $($Error.Count)"'. MSI (s) (5C:BC) [15:06:44:988]: Doing action: CA_NSERVICEBUSLICENSE.CA23A0DC_B2DE_4F2C_9E74_FD373F99E9D7 Action 15:06:44: CA_NSERVICEBUSLICENSE.CA23A0DC_B2DE_4F2C_9E74_FD373F99E9D7. CA: Installing NServiceBus license... Action start 15:06:44: CA_NSERVICEBUSLICENSE.CA23A0DC_B2DE_4F2C_9E74_FD373F99E9D7. 1: CA: Installing NServiceBus license... Action ended 15:06:44: CA_NSERVICEBUSLICENSE.CA23A0DC_B2DE_4F2C_9E74_FD373F99E9D7. Return value 1. MSI (s) (5C:BC) [15:07:02:273]: Executing op: ActionStart(Name=CA_NSERVICEBUSLICENSE.CA23A0DC_B2DE_4F2C_9E74_FD373F99E9D7, Description=CA: Installing NServiceBus license...,) Action 15:07:02: CA_NSERVICEBUSLICENSE.CA23A0DC_B2DE_4F2C_9E74_FD373F99E9D7. CA: Installing NServiceBus license... MSI (s) (5C:BC) [15:07:02:274]: Executing op: CustomActionSchedule(Action=CA_NSERVICEBUSLICENSE.CA23A0DC_B2DE_4F2C_9E74_FD 373F99E9D7,ActionType=3073,Source=BinaryData,Target=CAQuietExec64,CustomActi onData="C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -Version 3.0 -NoProfile -NonInteractive -InputFormat None -ExecutionPolicy Bypass -Command "& 'C:\Program Files\TITUS\TITUS Services\Common\RegisterLicense.ps1' ; exit $($Error.Count)") MSI (s) (5C:BC) [15:07:02:294]: Creating MSIHANDLE (829) of type 790536 for thread 8636 MSI (s) (5C:FC) [15:07:02:294]: Invoking remote custom action. DLL: C:\Windows\Installer\MSIF7EE.tmp, Entrypoint: CAQuietExec64 MSI (s) (5C!80) [15:07:02:381]: Creating MSIHANDLE (830) of type 790531 for thread 8832 CAQuietExec64: Entering CAQuietExec64 in C:\Windows\Installer\MSIF7EE.tmp, version 3.7.1224.0 MSI (s) (5C!80) [15:07:02:382]: Closing MSIHANDLE (830) of type 790531 for thread 8832 MSI (s) (5C!80) [15:07:02:382]: Creating MSIHANDLE (831) of type 790531 for thread 8832 CAQuietExec64: "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -Version 3.0 -NoProfile -NonInteractive -InputFormat None -ExecutionPolicy Bypass -Command "& 'C:\Program Files\TITUS\TITUS Services\Common\RegisterLicense.ps1' ; exit $($Error.Count)" Property(S): CA_NSERVICEBUSLICENSE.CA23A0DC_B2DE_4F2C_9E74_FD373F99E9D7 = "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -Version 3.0 -NoProfile -NonInteractive -InputFormat None -ExecutionPolicy Bypass -Command "& 'C:\Program Files\TITUS\TITUS Services\Common\RegisterLicense.ps1' ; exit $($Error.Count)" Did not register the license, open a CMD prompt enter the above text and the license has been placed into the registery.... Steve -----Original Message----- From: Castro, Edwin G. (Hillsboro) [mailto:edwin.cas...@fiserv.com] Sent: March-06-13 2:10 PM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] Running PowerShell script... Looking back at your original email I see the following: <CustomAction Id="CA_NSERVICEBUSLICENSE" BinaryKey="WixCA" DllEntry="CAQuietExec" Execute="deferred" Return="check" Impersonate="no" /> The DllEntry="CAQuietExec" attribute is putting you in 32-bit land. You need to use DllEntry="CAQuietExec" for 32-bit and DllEntry="CAQuietExec64" for 64-bit. Edwin G. Castro Software Developer - Staff Digital Channels Fiserv Office: 503-746-0643 Fax: 503-617-0291 www.fiserv.com > -----Original Message----- > From: Steven Ogilvie [mailto:steven.ogil...@titus.com] > Sent: Wednesday, March 06, 2013 10:40 AM > To: General discussion for Windows Installer XML toolset. > Subject: Re: [WiX-users] Running PowerShell script... > > In this case it is a 64 bit MSI (our services installer has a 32 bit > and a 64 bit MSI based on the bitness of the OS, in this case testing > with 64 bit MSI) since the path is: > MSI (s) (30:B0) [12:56:34:248]: Executing op: > CustomActionSchedule(Action=CA_NSERVICEBUSLICENSE.CA23A0DC_B2DE_ > 4F2C_9E74_FD373F99E9D7,ActionType=3073,Source=BinaryData,Target=Inst > allNServiceBusLicense,CustomActionData="C:\Windows\System32\Windows > PowerShell\v1.0\powershell.exe"|-NoProfile -NonInteractive > -InputFormat None -ExecutionPolicy Bypass -Command "& 'C:\Program > Files\MYCORP\MYCORP Services\Common\RegisterLicense.ps1' ; exit > $($Error.Count)"|C:\Program Files\TITUS\TITUS Services\Common) > > I even tried using a custom action in my CA DLL: > > [CustomAction] > public static ActionResult InstallNServiceBusLicense(Session session) > { > try > { > if (session == null) > { > throw new ArgumentNullException("session"); > } > > var tempString = GetSessionProperty(session, > "CustomActionData", false); > var parts = tempString.Split(new[] { '|' }); > var cmdLineExe = parts[0]; > var cmdLineParameters = parts[1]; > var commonFolder = parts[2]; > > var path = @commonFolder + "\\RegisterLicense.ps1"; > > var currentFolder = Directory.GetCurrentDirectory(); > Directory.SetCurrentDirectory(commonFolder); > > if (Directory.Exists(commonFolder)) > { > // Create a file to write to. > using (StreamWriter sw = File.CreateText(path)) > { > sw.WriteLine("CD " + commonFolder); > sw.WriteLine("Import-Module .\\NServiceBus.Core.dll"); > sw.WriteLine("Install-License -Path .\\License.xml"); > } > } > > // run PowerShell on the script > if (File.Exists(path)) > { > var runPowerShellInfo = new ProcessStartInfo > { > UseShellExecute = true, > Arguments = cmdLineParameters, > FileName = cmdLineExe, > WindowStyle = ProcessWindowStyle.Hidden, > CreateNoWindow = true > }; > > // Run the external process & wait for it to finish > using (Process runPowerShellProc = > Process.Start(runPowerShellInfo)) > { > runPowerShellProc.WaitForExit(); > } > } > > Directory.SetCurrentDirectory(currentFolder); > } > catch (Exception ex) > { > WriteErrorLogInstall(session, > "InstallNServiceBusLicense failed: ", ex, true); > } > > return ActionResult.Success; > } > > > -----Original Message----- > From: Castro, Edwin G. (Hillsboro) [mailto:edwin.cas...@fiserv.com] > Sent: March-06-13 1:22 PM > To: General discussion for Windows Installer XML toolset. > Subject: Re: [WiX-users] Running PowerShell script... > > The useLegacyV2RuntimeActivationPolicy="true" is what allows .NET 4 to > load .NET 2 assemblies so you need that. You don't want to remove it. > > I assume you checked the system where the MSI is installing so my next > guess is that 64-bit powershell has the configuration file while > 32-bit powershell does not and the MSI is executing 32-bit powershell. > > Edwin G. Castro > Software Developer - Staff > Digital Channels > Fiserv > Office: 503-746-0643 > Fax: 503-617-0291 > www.fiserv.com > > > -----Original Message----- > > From: Steven Ogilvie [mailto:steven.ogil...@titus.com] > > Sent: Wednesday, March 06, 2013 9:53 AM > > To: General discussion for Windows Installer XML toolset. > > Subject: Re: [WiX-users] Running PowerShell script... > > > > Hmm > > > > Your right I have PS version 3 but the powershell config is loading > > .NET 4 > > > > <?xml version="1.0" encoding="utf-8" ?> <configuration> > > <startup useLegacyV2RuntimeActivationPolicy="true"> > > <supportedRuntime version="v4.0" /> > > </startup> > > </configuration> > > > > So why is it still failing? Is it because of the legacyV2 is set to true? > > > > -----Original Message----- > > From: Castro, Edwin G. (Hillsboro) [mailto:edwin.cas...@fiserv.com] > > Sent: March-06-13 12:25 PM > > To: General discussion for Windows Installer XML toolset. > > Subject: Re: [WiX-users] Running PowerShell script... > > > > My guess would be that you have PowerShell v3 installed on your system. > > Check the value of the $PSVersionTable variable in PowerShell as > > that will give you detailed version information for PowerShell. > > > > Edwin G. Castro > > Software Developer - Staff > > Digital Channels > > Fiserv > > Office: 503-746-0643 > > Fax: 503-617-0291 > > www.fiserv.com > > > > > -----Original Message----- > > > From: StevenOgilvie [mailto:sogil...@msn.com] > > > Sent: Tuesday, March 05, 2013 9:43 PM > > > To: wix-users@lists.sourceforge.net > > > Subject: Re: [WiX-users] Running PowerShell script... > > > > > > Why is it that I can run the script in a dos box I.e. > > > powershell.exe > > > .\registerlicense.ps1 and it works ______________________ Steven > > > Ogilvie > > > > > > Sent from my BlackBerry... > > > > > > 3 - 45 Bertrand Street > > > Ottawa, ON > > > Canada > > > K1M 1Y5 > > > > > > Mobile: +1 613 299-2121 > > > E-mail: sogil...@msn.com > > > > > > -----Original Message----- > > > From: "Edwin G. Castro [via Windows Installer XML (WiX) toolset]" > > > <ml- > > > node+s687559n7584125...@n2.nabble.com> > > > Date: Tue, 5 Mar 2013 23:00:13 > > > To: <sogil...@msn.com> > > > Subject: Re: Running PowerShell script... > > > > > > Here's the bit that's important: > > > > > > CAQuietExec: Import-Module : Could not load file or assembly > > > 'file:///C:\Program Files\MYCORP > > > CAQuietExec: \MYCORP Services\Common\NServiceBus.Core.dll' or one > > > of its dependencies. This a > > > CAQuietExec: ssembly is built by a runtime newer than the > > > currently loaded runtime and cannot be loaded. > > > > > > This is telling you that the assembly you are trying to load is > > > probably compiled against .NET 4 while PowerShell is loading the > > > .NET 2 > > runtime. > > > PowerShell v3 loads the .NET 4 runtime but PowerShell v2 still > > > only loads the .NET 2 runtime. The easiest solution if you can > > > manage it is to get NServiceBus.Core.dll compiled against the .NET > > > 2 runtime (.NET > > > 3.5 would work too). Otherwise you'll need to decide whether > > > you'll only support PowerShell v3 OR create/customize a > > > PowerShell.exe.config that allows PowerShell to load the .NET 4 runtime. > > > > > > Edwin G. Castro > > > Software Developer - Staff > > > Digital Channels > > > Fiserv > > > Office: 503-746-0643 > > > Fax: 503-617-0291 > > > www.fiserv.com > > > > > > > > > > -----Original Message----- > > > > From: StevenOgilvie [mailto:[hidden email] > > > > </user/SendEmail.jtp?type=node&node=7584125&i=0> ] > > > > Sent: Tuesday, March 05, 2013 2:14 PM > > > > To: [hidden email] > > </user/SendEmail.jtp?type=node&node=7584125&i=1> > > > > Subject: [WiX-users] Running PowerShell script... > > > > > > > > Hi guys > > > > > > > > I have googled and done everything I think I should have done > > > > but I am getting a funky error in the MSI log file, has anyone > > > > else had this issue, if so how did you fix it? > > > > > > > > Install the Powershell file > > > > <Component Id="cmp_RegisterNServiceBusLicense" > > > > Guid="{276C369D-BF32-472F-A7FC-24155DEB18DE}"> > > > > <File Id="file_RegisterNServiceBusLicense" KeyPath="yes" > > > > Source="..\$(var.resourcePath)\RegisterLicense.ps1" /> > > > > </Component> > > > > > > > > > > > > Set the custom action > > > > <CustomAction Id="CA_SetNServiceBusLicense" > > > > Property="CA_NSERVICEBUSLICENSE" > > > > Value =""[POWERSHELLEXE]" -Version 2.0 -NoProfile - > > > > NonInteractive -InputFormat None -ExecutionPolicy Bypass > > > > -Command "& '[#file_RegisterNServiceBusLicense]' ; exit > > > > $$($Error.Count)"" /> > > > > <CustomAction Id="CA_NSERVICEBUSLICENSE" BinaryKey="WixCA" > > > > DllEntry="CAQuietExec" Execute="deferred" Return="check" > > > > Impersonate="no" /> > > > > <UI> > > > > <ProgressText Action="CA_NSERVICEBUSLICENSE">CA: > > > > Installing NServiceBus license...</ProgressText> > > > > </UI> > > > > > > > > Sequence the custom action > > > > <InstallExecuteSequence> > > > > <Custom Action="CA_SetNServiceBusLicense" > > > > After="InstallValidate"></Custom> <Custom > > > > Action="CA_NSERVICEBUSLICENSE" Before="InstallServices">NOT > > > > Installed</Custom> > > > > > > > > Get the powershell path: > > > > > > > > <Property Id="POWERSHELLEXE"> > > > > <RegistrySearch Id="POWERSHELLEXE" > > > > Type="raw" > > > > Root="HKLM" > > > > > > > > > > Key="SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell" > > > > Name="Path" /> > > > > </Property> > > > > <Condition Message="This application requires Windows > > > > PowerShell."> > > > > > > > > </Condition> > > > > > > > > The powershell script itself is pretty basic: > > > > C: > > > > CD "C:\Program Files\MYCORP\MYCORP Services\Common" > > > > Import-Module .\NServiceBus.Core.dll Install-License -Path > > > > .\License.xml > > > > > > > > > > > > The error in the msi logfile: > > > > > > > > Action 17:00:34: > > > > > CA_NSERVICEBUSLICENSE.CA23A0DC_B2DE_4F2C_9E74_FD373F99E9D7. > > > > CA: Installing NServiceBus license... > > > > MSI (s) (5C:48) [17:00:34:296]: Executing op: > > > > > > > > > > CustomActionSchedule(Action=CA_NSERVICEBUSLICENSE.CA23A0DC_B2DE_ > > > > > > > > > > 4F2C_9E74_FD373F99E9D7,ActionType=3073,Source=BinaryData,Target=CAQ > > > > > > > > > > uietExec,CustomActionData="C:\Windows\System32\WindowsPowerShell\v > > > > 1.0\powershell.exe" > > > > -Version 2.0 -NoProfile -NonInteractive -InputFormat None > > > > -ExecutionPolicy Bypass -Command "& 'C:\Program > > > > Files\MYCORP\MYCORPServices\Common\RegisterLicense.ps1' ; exit > > > > $($Error.Count)") > > > > MSI (s) (5C:64) [17:00:34:317]: Invoking remote custom action. DLL: > > > > C:\Windows\Installer\MSI8EA2.tmp, Entrypoint: CAQuietExec > > > > CAQuietExec: Entering CAQuietExec in > > > > C:\Windows\Installer\MSI8EA2.tmp, version 3.7.1224.0 > > > > CAQuietExec: > > > > "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" > > > > -Version 2.0 -NoProfile -NonInteractive -InputFormat None > > > > -ExecutionPolicy Bypass -Command "& 'C:\Program > > > Files\MYCORP\MYCORP > > > > Services\Common\RegisterLicense.ps1' ; exit $($Error.Count)" > > > > CAQuietExec: Import-Module : Could not load file or assembly > > > > 'file:///C:\Program Files\MYCORP > > > > CAQuietExec: \MYCORP Services\Common\NServiceBus.Core.dll' or > one > > > > of its dependencies. This a > > > > CAQuietExec: ssembly is built by a runtime newer than the > > > > currently loaded runtime and cannot be loaded. > > > > CAQuietExec: At C:\Program Files\MYCORP\MYCORP > > > > Services\Common\RegisterLicense.ps1:5 char:14 > > > > CAQuietExec: + Import-Module <<<< .\NServiceBus.Core.dll + > > > > CategoryInfo > > > > : NotSpecified: (:) , BadImageFormatException > > > > CAQuietExec: + FullyQualifiedErrorId : > > > > > > > > > > System.BadImageFormatException,Microsoft.PowerShell.Commands.Import > > > > ModuleCommand > > > > CAQuietExec: > > > > CAQuietExec: Install-License : The term 'Install-License' is > > > > not recognized as the name of a > > > > CAQuietExec: cmdlet, function, script file, or operable program. > > > > Check the spelling of the > > > > CAQuietExec: name, or if a path was included, verify that the > > > > path is correct and try again. > > > > CAQuietExec: At C:\Program Files\MYCORP\MYCORP > > > > Services\Common\RegisterLicense.ps1:6 char:16 > > > > CAQuietExec: + Install-License <<<< -Path .\License.xml > > > > CAQuietExec: + CategoryInfo : ObjectNotFound: > > > > (Install-License:String) , Com > > > > CAQuietExec: mandNotFoundException > > > > CAQuietExec: + FullyQualifiedErrorId : > > > > CommandNotFoundException > > > > CAQuietExec: > > > > CAQuietExec: Error 0x80070002: Command line returned an error. > > > > CAQuietExec: Error 0x80070002: CAQuietExec Failed CustomAction > > > > CA_NSERVICEBUSLICENSE.CA23A0DC_B2DE_4F2C_9E74_FD373F99E9D7 > > > > returned actual error code 1603 (note this may not be 100% > > > > accurate if translation happened inside sandbox) > > > > > > > > thanks, > > > > > > > > Steve > > > > > > > > > > > > > > > > > > > > -- > > > > View this message in context: http://windows-installer-xml-wix- > > > > toolset.687559.n2.nabble.com/Running-PowerShell-script-tp7584122 > > > > .h tm l Sent from the wix-users mailing list archive at > > > > Nabble.com. > > > > > > > > ---------------------------------------------------------------- > > > > -- > > > > -- > > > > -- > > > > -------- Symantec Endpoint Protection 12 positioned as A LEADER > > > > in The Forrester > > > > Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" > > > > in the endpoint security space. For insight on selecting the > > > > right partner to tackle endpoint security challenges, access the full report. > > > > http://p.sf.net/sfu/symantec-dev2dev > > > > _______________________________________________ > > > > WiX-users mailing list > > > > [hidden email] </user/SendEmail.jtp?type=node&node=7584125&i=2> > > > > https://lists.sourceforge.net/lists/listinfo/wix-users > > > ------------------------------------------------------------------ > > > -- > > > -- > > > -------- Symantec Endpoint Protection 12 positioned as A LEADER in > > > The Forrester > > > Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" > > > in the endpoint security space. For insight on selecting the right > > > partner to tackle endpoint security challenges, access the full report. > > > http://p.sf.net/sfu/symantec-dev2dev > > > _______________________________________________ > > > WiX-users mailing list > > > [hidden email] </user/SendEmail.jtp?type=node&node=7584125&i=3> > > > https://lists.sourceforge.net/lists/listinfo/wix-users > > > > > > > > > > > > ---------------- > > > > > > > > > If you reply to this email, your message will be added to the discussion > > > below: http://windows-installer-xml-wix- > > > toolset.687559.n2.nabble.com/Running-PowerShell-script- > > > tp7584122p7584125.html > > > To unsubscribe from Running PowerShell > > script..., click here > > > <http://windows-installer-xml-wix- > > > > > > toolset.687559.n2.nabble.com/template/NamlServlet.jtp?macro=unsubscrib > > > > > > e_by_code&node=7584122&code=c29naWx2aWVAbXNuLmNvbX > > > w3NTg0MTIyfC0xMzAxOTI3MzMx> . > > > NAML <http://windows-installer-xml-wix- > > > > > > toolset.687559.n2.nabble.com/template/NamlServlet.jtp?macro=macro_vie > > > > > > wer&id=instant_html%21nabble%3Aemail.naml&base=nabble.na > > > ml.namespaces.BasicNamespace- > > > nabble.view.web.template.NabbleNamespace- > > > > > > nabble.view.web.template.NodeNamespace&breadcrumbs=notify_su > > > bscribers%21nabble%3Aemail.naml- > > > instant_emails%21nabble%3Aemail.naml- > > > send_instant_email%21nabble%3Aemail.naml> > > > > > > > > > > > > > > > -- > > > View this message in context: http://windows-installer-xml-wix- > > > toolset.687559.n2.nabble.com/Running-PowerShell-script- > > > tp7584122p7584127.html > > > Sent from the wix-users mailing list archive at Nabble.com. > > > ------------------------------------------------------------------ > > > -- > > > -- > > > -------- Symantec Endpoint Protection 12 positioned as A LEADER in > > > The Forrester > > > Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" > > > in the endpoint security space. For insight on selecting the right > > > partner to tackle endpoint security challenges, access the full report. > > > http://p.sf.net/sfu/symantec-dev2dev > > > _______________________________________________ > > > WiX-users mailing list > > > WiX-users@lists.sourceforge.net > > > https://lists.sourceforge.net/lists/listinfo/wix-users > > -------------------------------------------------------------------- > > -- > > -------- Symantec Endpoint Protection 12 positioned as A LEADER in > > The Forrester > > Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in > > the endpoint security space. For insight on selecting the right > > partner to tackle endpoint security challenges, access the full report. > > http://p.sf.net/sfu/symantec-dev2dev > > _______________________________________________ > > WiX-users mailing list > > WiX-users@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/wix-users > > -------------------------------------------------------------------- > > -- > > -------- Symantec Endpoint Protection 12 positioned as A LEADER in > > The Forrester > > Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in > > the endpoint security space. For insight on selecting the right > > partner to tackle endpoint security challenges, access the full report. > > http://p.sf.net/sfu/symantec-dev2dev > > _______________________________________________ > > WiX-users mailing list > > WiX-users@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/wix-users > ---------------------------------------------------------------------- > -------- Symantec Endpoint Protection 12 positioned as A LEADER in The > Forrester > Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in > the endpoint security space. For insight on selecting the right > partner to tackle endpoint security challenges, access the full report. > http://p.sf.net/sfu/symantec-dev2dev > _______________________________________________ > WiX-users mailing list > WiX-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wix-users > ---------------------------------------------------------------------- > -------- Symantec Endpoint Protection 12 positioned as A LEADER in The > Forrester > Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in > the endpoint security space. For insight on selecting the right > partner to tackle endpoint security challenges, access the full report. > http://p.sf.net/sfu/symantec-dev2dev > _______________________________________________ > WiX-users mailing list > WiX-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wix-users ---------------------------------------------------------------------------- -- Symantec Endpoint Protection 12 positioned as A LEADER in The Forrester Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in the endpoint security space. For insight on selecting the right partner to tackle endpoint security challenges, access the full report. http://p.sf.net/sfu/symantec-dev2dev _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ---------------------------------------------------------------------------- -- Symantec Endpoint Protection 12 positioned as A LEADER in The Forrester Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in the endpoint security space. For insight on selecting the right partner to tackle endpoint security challenges, access the full report. http://p.sf.net/sfu/symantec-dev2dev _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------------ Symantec Endpoint Protection 12 positioned as A LEADER in The Forrester Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in the endpoint security space. For insight on selecting the right partner to tackle endpoint security challenges, access the full report. http://p.sf.net/sfu/symantec-dev2dev _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users