I just used Powershell to install GAPS on my core servers, and I had a command like this. I like this more verbose syntax because it is more readable, and I can include comments per command line option to save myself and others time re-used the command in the future.
$cmdhash=@{}
$cmdhash['FilePath'] = 'C:\Windows\System32\msiexec.exe'
$cmdhash['Wait'] = $true
$cmdhash['NoNewWindow'] = $true
$cmdhash['ArgumentList']=@()
$cmdhash['ArgumentList'] += '/i \\esd189.org\dfs\wpkg\software\Google\GAPS\googleappspasswordsync64.msi'
$cmdhash['ArgumentList'] += '/l*vx C:\programdata\gaps_msi_log.txt'
$cmdhash['ArgumentList'] += '/quiet'
$cmdhash['ArgumentList'] += 'DOMAIN="example.org"'
$cmdhash['ArgumentList'] += 'ADMIN_EMAIL="googlesync@example.org"'
$cmdhash['ArgumentList'] += 'CREDENTIALS_FILE="\\ds-01\c$\Users\svc-googlesync\Documents\example.json"'
$cmdhash['ArgumentList'] += 'BASE_DN="DC=example,DC=org"'
$cmdhash['ArgumentList'] += 'MAIL_ATTRIBUTE="userPrincipalName"'
# using splatting, run the process
Start-Process @cmdhash
I am not sure that your /CONFIGFILE=
is right though. /CONFIGFILE
doesn't seem to be an msiexec option. Perhaps you should skip the leading /
for that? If that slash should be stripped the command would look like this.
$cmdhash=@{}
$cmdhash['FilePath'] = 'C:\Windows\System32\msiexec.exe'
$cmdhash['Wait'] = $true
$cmdhash['NoNewWindow'] = $true
$cmdhash['ArgumentList']=@()
$cmdhash['ArgumentList'] += '/qb'
$cmdhash['ArgumentList'] += '/i ps-pulse-win-5.2r5.1-b897-64bitinstaller.msi'
$cmdhash['ArgumentList'] += 'CONFIGFILE="ALS GSLB.jnprpreconfig'
Start-Process @cmdhash