Вероятно, как вы передаете свои аргументы.Рекомендуется использовать массив при передаче exe
аргументов, чтобы они правильно интерпретировались:
$machineParams = Import-Csv -Path $Env:UserProfile\Desktop\parameters.csv
$info = if ($machineParams) {
$machineParams |
Where-Object { $_.branch -eq $Env:ComputerName.Substring($Env:ComputerName.Length - 3, 3) }
} else {
'CSV not loaded.'
}
$info
$StartArgs = @{
'Wait' = $true
'FilePath' = "$Env:SystemRoot\System32\msiexec.exe"
'ArgumentList' = @(
'/i',"$Env:UserProfile\Desktop\setup.msi"
'/qn'
'/log',"$Env:UserProfile\Desktop\t.log"
)
}
if ($info -ne 'CSV not loaded.') {
$StartArgs['ArgumentList'] += @(
"DATABASE_ID=$($info.DATABASE_ID)"
"ODBC_DATABASE_NAME=$($info.ODBC_DATABASE_NAME)"
"ODBC_ENGINE_NAME=$($info.ODBC_ENGINE_NAME)"
"ODBC_HOST_NAME=$($info.ODBC_HOST_NAME)"
'NOLAN=1'
)
}
Start-Process @StartArgs