Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Passing arguments as a variable when installing an MSI using Start-Process

Tags:

powershell

I am new to Powershell and, of course, trying to learn on the fly for a project- No pressure, right! :-)

I am working on a script to run an MSI package in quiet mode, passing it an activation code as an argument, that I have to extract from an XML file.

So far, I have everything working except for getting Start-Process to run the MSI with the arguments being passed in a Variable.

Set-ExecutionPolicy Bypass -Force
[System.Xml.XmlDocument]$XML_Doc = new-object System.Xml.XmlDocument
$XML_Doc.load('c:\myfolder\Configinfo.XML')
$ActivationID = $XML_Doc.CONFIGINFO.SITEINFO.ACTIVATEID
write-host "Activation Id is: $ActivationID"
$InstallString = "`'/I C:\myfolder\myinstaller.msi akey="+'"'+$ActivationID+'"'''
#$InstallString = "`'/I C:\myfolder\myinstaller.msi akey=`"$($ActivationID)`"'"
write-host "$InstallString"'''
Start-Process msiexec.exe -ArgumentList  $InstallString  -Wait -NoNewWindow
#Start-Process msiexec.exe -ArgumentList '/I C:\myfolder\myinstaller.msi akey="12345678-abcd-1a1b-x9x1-a1b2c3d4e5f6"' -Wait -NoNewWindow

Above is the code I am working with now. The last line that is commented out is an activation string that works.

I have verified that $ActivationID is pulling back the correct value, and that $InstallString mirrors the argument list in the commented version of the Start-Process string.

Any help would be appreciated!

like image 433
BrianCon Avatar asked Feb 02 '26 08:02

BrianCon


1 Answers

The Start-Process commands aren't necessary. PowerShell is a shell. It can run commands. Just put the commands you want to run directly in the script.

msiexec /i "C:\myfolder\myinstaller.msi" "AKEY=$ActivationID"

I quoted the parameters to msiexec.exe in case any of them contain spaces. PowerShell will automatically expand the $ActivationID variable into the string inside the double quotes.

like image 104
Bill_Stewart Avatar answered Feb 04 '26 01:02

Bill_Stewart



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!