具有提升特权的自定义操作以运行批处理文件

安德烈(GA)

我需要在安装过程中启动.cmd脚本,并且此脚本会修改安装目录中的某些文件。我有以下WiX代码:

<Fragment>
    <Property Id="WINCMD">cmd.exe</Property>
    <CustomAction Id="ResignManifest" 
                  Property="WINCMD" ExeCommand="/C [ToolDir]manifest_resign.cmd"
                  Execute="deferred" Impersonate="no" Return="check"/>

    <InstallExecuteSequence>
        <Custom Action="ResignManifest" After="InstallFinalize"/>
    </InstallExecuteSequence>
</Fragment>

问题在于,在安装期间,由于访问权限不足,脚本无法进行修改我的CA指定MSI不应模拟用户上下文(我以Admin权限启动安装程序),但cmd.exe在没有Admin权限的情况下运行。

PS我知道这不是在安装过程中另外启动bat / cmd文件的好习惯,但是我必须这样做以辞职某些Silverlight应用程序的应用程序和部署清单(在安装过程中,用户会修改应用程序配置文件,因此此类文件的哈希值内部清单变得无效)。

克里斯托弗·画家

在回答历史记录中的某个地方,我之前已经解决过这一问题。诀窍是通过重构Silverlight代码以从未签名的settings.xml文件读取来简化问题。这就是几年前我让开发人员为我们编写的内部应用程序所做的事情。服务器端具有一个可从settings.xml文件读取的设置Web服务。调用Web服务以检索其设置的Silverlight应用程序。这样就无需执行自定义操作。

请参阅:如何在InstallShield Basic MSI项目中的ZIP文件中更改文本文件

为Silverlight创建和使用Silverlight web.config应用程序设置(Web.config配置应用程序设置)或app.config应用程序设置配置文件

我同意你已经知道的。调用批处理文件并辞退MSI放置的文件不是一个好的设计。是的,您应该已经在系统上下文中执行了。您确定CMD.exe没有运行提升吗?我不知道您怎么确定,因为MSI没有记录它。我建议至少使用QuietExecCA模式来获取cmd脚本的结果记录在MSI日志中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

通过具有提升权限的批处理文件运行 Powershell 脚本

来自分类Dev

批处理文件:删除提升的特权(以原始用户身份运行命令)

来自分类Dev

在当前目录的键盘快捷方式上运行自定义批处理文件

来自分类Dev

自定义Windows配置批处理文件

来自分类Dev

具有提升的自定义操作的提升的安装程序不会提升可执行文件

来自分类Dev

具有提升的自定义操作的提升的安装程序不会提升可执行文件

来自分类Dev

如何以提升的权限运行批处理文件命令?

来自分类Dev

使用提升的权限从批处理文件运行 Powershell 脚本?

来自分类Dev

具有提升的权限的批处理文件不起作用?

来自分类Dev

Windows批处理文件获取文件系统信息而无特权提升

来自分类Dev

通过PowerShell以提升的特权调用批处理文件并检索退出代码

来自分类Dev

命令行批处理文件-定义几种自定义

来自分类Dev

具有xcopy的批处理文件可以从cmd正确运行,但不能双击运行

来自分类Dev

批处理文件:对具有特定扩展名的每个文件运行命令

来自分类Dev

删除文件前提升自定义操作

来自分类Dev

删除文件前提升自定义操作

来自分类Dev

为什么不从PsExec执行的远程批处理文件从具有功能exec的PHP脚本中运行的批处理文件启动?

来自分类Dev

如果我知道密码,如何运行提升的批处理文件?

来自分类Dev

具有非ASCII字符的批处理文件

来自分类Dev

Windows批处理文件是否具有Heredoc功能?

来自分类Dev

具有当前日期的批处理文件

来自分类Dev

具有if语句的批处理文件不起作用

来自分类Dev

具有Powershell命令引号的批处理文件

来自分类Dev

从带有参数的批处理文件运行 exe

来自分类Dev

在自定义大小的浏览器窗口中使用批处理文件打开链接

来自分类Dev

Sonata Admin中的自定义批处理操作

来自分类Dev

Sonata Admin中的自定义批处理操作

来自分类Dev

在批处理文件中设置操作

来自分类Dev

操作循环批处理文件输出

Related 相关文章

  1. 1

    通过具有提升权限的批处理文件运行 Powershell 脚本

  2. 2

    批处理文件:删除提升的特权(以原始用户身份运行命令)

  3. 3

    在当前目录的键盘快捷方式上运行自定义批处理文件

  4. 4

    自定义Windows配置批处理文件

  5. 5

    具有提升的自定义操作的提升的安装程序不会提升可执行文件

  6. 6

    具有提升的自定义操作的提升的安装程序不会提升可执行文件

  7. 7

    如何以提升的权限运行批处理文件命令?

  8. 8

    使用提升的权限从批处理文件运行 Powershell 脚本?

  9. 9

    具有提升的权限的批处理文件不起作用?

  10. 10

    Windows批处理文件获取文件系统信息而无特权提升

  11. 11

    通过PowerShell以提升的特权调用批处理文件并检索退出代码

  12. 12

    命令行批处理文件-定义几种自定义

  13. 13

    具有xcopy的批处理文件可以从cmd正确运行,但不能双击运行

  14. 14

    批处理文件:对具有特定扩展名的每个文件运行命令

  15. 15

    删除文件前提升自定义操作

  16. 16

    删除文件前提升自定义操作

  17. 17

    为什么不从PsExec执行的远程批处理文件从具有功能exec的PHP脚本中运行的批处理文件启动?

  18. 18

    如果我知道密码,如何运行提升的批处理文件?

  19. 19

    具有非ASCII字符的批处理文件

  20. 20

    Windows批处理文件是否具有Heredoc功能?

  21. 21

    具有当前日期的批处理文件

  22. 22

    具有if语句的批处理文件不起作用

  23. 23

    具有Powershell命令引号的批处理文件

  24. 24

    从带有参数的批处理文件运行 exe

  25. 25

    在自定义大小的浏览器窗口中使用批处理文件打开链接

  26. 26

    Sonata Admin中的自定义批处理操作

  27. 27

    Sonata Admin中的自定义批处理操作

  28. 28

    在批处理文件中设置操作

  29. 29

    操作循环批处理文件输出

热门标签

归档