首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行.msi的Windows 10批处理

运行.msi的Windows 10批处理
EN

Stack Overflow用户
提问于 2018-03-29 01:11:11
回答 1查看 708关注 0票数 0

我对批处理文件相当陌生,特别是在我现在被要求这样做的实例中。

我们在网络上有很多运行".kix“文件的旧批处理文件,它们多年来一直运行得很好。然而,我的公司正在迁移到Windows10,由于Windows10增强的安全性,许多旧的批处理文件将无法运行。

我环顾四周,找到了解决这个问题的办法,但我遇到了一个障碍。我有一个运行".msi“文件的批处理文件。我对.kix文件的修复是:

代码语言:javascript
复制
Set "kixCommand=\\abc123\Scripts\KIX\kix32.exe"    *(abc123 is the network server name)*  
Set "kixFile=\\abc123\Scripts\Apps\My Program\MyProgram.kix"

:UACPrompt
   echo Set UAC = CreateObject^("Shell.Application"^) > "C:\ICS_Tools\Temp\getadmin.vbs"  
   echo UAC.ShellExecute "cmd.exe", "/c %kixCommand% %kixFile%", "", "runas", 1 >> "C:\ICS_Tools\Temp\getadmin.vbs"  
   "C:\ICS_Tools\Temp\getadmin.vbs"
   del "C:\ICS_Tools\Temp\getadmin.vbs"  
  exit /B

该批处理创建一个本地vbs脚本,以管理员权限运行该脚本,然后将其删除。

我尝试对.msi文件使用相同的方法。.vbs文件如下所示:

代码语言:javascript
复制
Set UAC = CreateObject("Shell.Application")   
UAC.ShellExecute "msiexec.exe /i \\abc123\Scripts\Apps\My Program2\setup.msi", "", "runas", 1  

然而,由于某些原因,它说它找不到命令(见附图)。

我真的很感谢一些专家在这方面的帮助。我尝试使用引号(因为文件夹名称"My Program2“中有空格),但似乎都不起作用。

EN

回答 1

Stack Overflow用户

发布于 2018-03-29 01:14:43

您的新代码将两个参数合并到可执行路径中。确实没有名为msiexec.exe /i \\abc123\Scripts\Apps\My Program2\setup.msi的可执行文件,因此失败是意料之中的。

相反,请尝试:

代码语言:javascript
复制
UAC.ShellExecute "msiexec.exe", "/i", "\\abc123\Scripts\Apps\My Program2\setup.msi", "", "runas", 1 

您的原始代码(以及新代码的结尾部分)正确地实现了这一点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49540456

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档