首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >标记MSI,因此它必须作为高架管理员帐户运行

标记MSI,因此它必须作为高架管理员帐户运行
EN

Stack Overflow用户
提问于 2008-11-20 04:47:11
回答 3查看 19.8K关注 0票数 25

我有一个CustomAction作为MSI的一部分。

它必须作为也是本地管理员帐户成员的域帐户运行。

它不能使用NoImpersonate标志以network \System的身份运行自定义操作,因为这样它就无法访问网络资源。

在启用UAC的Vista/2008上,如果NoImpersonate为off,那么它将以执行用户的身份运行,但使用非特权令牌运行,并且无法访问本地资源(如.installState )。见UAC体系结构

任何一个人都知道

  • 强制MSI以与从提升的命令提示符运行相同的方式使用提升令牌运行?
  • 强制CustomAction运行提升(清单中的requireAdministrator似乎不起作用)?
  • 确定是否启用了UAC,如果它没有被提升,如果是的话,警告或取消安装?
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2008-11-22 22:10:50

为其他可怜的s0d回答我自己的问题。

  • 不能向MSI添加清单。您可以添加一个SETUP.EXE或引导程序来对MSI进行外壳,并使用requireAdministrator来显化它,但这就违背了使用MSI的一些意义。
  • 向CustomAction添加清单不起作用,因为它是从msiexec.exe运行的。

我解决这一问题的方法是将均方根属性设置为1,这样特权条件实际上可以工作,并为特权添加一个启动条件,该条件提供关于通过提升的命令提示符运行并退出安装的错误消息。

这有一个好的副作用--当从提升的命令提示符运行msi时,延迟CustomActions将作为当前用户以完全管理员令牌(而不是标准用户令牌)的身份运行,而不管NoImpersonate设置如何。

更多细节- http://www.microsoft.com/downloads/details.aspx?FamilyID=2cd92e43-6cda-478a-9e3b-4f831e899433

编辑-我把脚本放在这里,让您添加MSIUSEREALADMINDETECTION属性作为VS没有能力这样做,Orca是一个痛苦。

票数 34
EN

Stack Overflow用户

发布于 2008-11-20 04:57:56

清单中的requireAdministrator应该可以工作。

您还可以使用引导加载器.exe文件,它可以使用以"RUNAS“作为动词的ShellExecute (可以使用7-zip创建引导加载程序,或者有许多其他方法)。

票数 1
EN

Stack Overflow用户

发布于 2018-04-15 09:47:33

您可以使用Winrar为msi文件创建一个简单的msi sfx存档文件,这些选项如下:

  • 安装选项卡>执行输入后运行: msi文件名
  • 高级选项卡>标记请求管理访问选项复选框
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/304353

复制
相关文章

相似问题

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