使用PowerShell调用命令安装软件

时间:2017-10-19 11:12:24

标签: powershell windows-installer invoke-command

$cs = New-PSSession -ComputerName MACHINE -Credential DOMAIN\admin
Copy-Item -Path C:\Scripts\smart -Destination C:\smart -ToSession $cs
msiexec /i "C:\Smart\SMART.msi" NB_PROD_KEY=NC-2ADA2-F9RKE-AKAIA-BBB ACTIVATE_LICENSE=1 INSTALL_INK="" LAT_CONTENT="" PRINT_CAPTURE="" INSTALL_DOCCAM_DRIVERS="" CUSTOMER_LOGGING=1 /qnT="" INSTALL_SPU=2 CUSTOMER_LOGGING=0 /qn

您好,

我正在努力获得与上述MSI一起运行的语法 - 我使用了脚本块中的开关,这些开关成功调用命令beforfe,但不是那些来自程序供应商帮助文件的参数。

我也尝试过:

Start-Process "msiexec.exe" -Argumentlist "/i "C:\smartmsi\SMART.msi" `
NB_PROD_KEY=NC-2ADA2-F9RKE-AKAIA-BBB ACTIVATE_LICENSE=1 INSTALL_INK="" LAT_CONTENT="" PRINT_CAPTURE="" INSTALL_DOCCAM_DRIVERS="" CUSTOMER_LOGGING=1 /qn

完全混淆了如何使用POwerShell中的供应商命令进行安装,如果不是交换机,我如何嵌套每个参数?

我也尝试过使用Splatter:

$params = '/i', "C:\smartmsi\SMART.msi",
          'NB_PROD_KEY=NC-2ADA2-CEAM7-F9RKE', 'ACTIVATE_LICENSE=1',
          '/qn'
& msiexec.exe @params
$LastExitCode

没有快乐 - 这个应用程序将作为常规安装远程安装。

提前致谢

更新:

现在,我也尝试了这个:

invoke-command -Session $session -ScriptBlock {
Start-Process -FilePath C:\windows\system32\msiexec.exe `
-ArgumentList "/i `"C:\smart\SMARTSuite.msi`" `"NB_PROD_KEY=NC-2ADA2`" ACTIVATE_LICENSE=1 INSTALL_INK=`"`" LAT_CONTENT=`"`" PRINT_CAPTURE=`"`" INSTALL_DOCCAM_DRIVERS=`"`" CUSTOMER_LOGGING=1 /qn"

}

仍然无法正常工作。安装程序出现一秒然后下降。

1 个答案:

答案 0 :(得分:1)

你必须逃避`“如果你希望它们被解释在一个已经使用双引号的字符串中,否则你会破坏字符串链接:

Start-Process -FilePath msiexec -ArgumentList "/i `"C:\smartmsi\SMART.msi`" NB_PROD_KEY=NC-2ADA2-F9RKE-AKAIA-BBB ACTIVATE_LICENSE=1 INSTALL_INK=`"`" LAT_CONTENT=`"`" PRINT_CAPTURE=`"`" INSTALL_DOCCAM_DRIVERS=`"`" CUSTOMER_LOGGING=1 /qn"

如果字符串被简单引号

包围,则不必转义双引号