EXE静默安装

EXE silent installation

我有以下 PowerShell 脚本来安装应用程序而无需用户干预:

Start-Process -FilePath "C:\Temp\UpgradeClientInstaller\setup.exe" -ArgumentList "/S /v/qn"

通过在参数列表中给出 /s,它应该在没有用户干预的情况下静默安装,但是弹出窗口显示

即使我尝试使用 winrar.exezip.exe 文件也给出相同的结果。这是正确的做法吗?

请试试这个:

$pathvargs = {C:\Temp\UpgradeClientInstaller\setup.exe /S /v/qn }
Invoke-Command -ScriptBlock $pathvargs

您是否尝试过以下命令?

Start-Process -Wait -FilePath "C:\Setup.exe" -ArgumentList "/S" -PassThru

您的问题似乎是 Windows UAC 而不是脚本本身。

  1. 转到控制面板 -> 系统和安全 -> 安全和维护
  2. 单击更改用户帐户控制设置。
  3. 将滑块设置为 "Never Notify"。

这可能有风险 - 但它有效。

添加 -NoNewWindow 以停止弹出窗口

试试这个:

Start-Process -Wait -FilePath C:\setup.exe -Argument "/silent" -PassThru
Start-Process -Wait -FilePath "\full\path\setup.exe" -ArgumentList '/S','/v','/qn' -passthru

执行文件的引号不一定。

使用这个命令它不会要求任何点击下一步并安装软件。

Start-Process -Wait -ArgumentList "/silent" -PassThru -FilePath 'C:\Users\filename.exe'

我知道 post 太老了,但我觉得我可以分享一些关于此事的见解

几年前我不得不做类似的事情。当您在提示中单击“安装”时,它所做的只是将证书添加到 TrustedPublisher 商店。如果您在 运行 安装程序之前手动将其添加到证书管理器,则可以避免该提示。
我发现如果你在测试机器上安装程序,你可以从 certmgr.msc 导出证书。然后您可以使用以下命令安装证书:

certutil -addstore "TrustedPublisher" <PathTo.cerFile> >nul 2>nul

这会将证书安装到 TrustedPublisher 存储区,因此无需显示该消息。

我希望这对 Ramesh 以及将来发现此问题的任何其他人有所帮助