我有一个CustomAction作为MSI的一部分。
它必须作为也是本地管理员帐户成员的域帐户运行。
它不能使用NoImpersonate标志以network \System的身份运行自定义操作,因为这样它就无法访问网络资源。
在启用UAC的Vista/2008上,如果NoImpersonate为off,那么它将以执行用户的身份运行,但使用非特权令牌运行,并且无法访问本地资源(如.installState )。见UAC体系结构
任何一个人都知道
发布于 2008-11-22 22:10:50
为其他可怜的s0d回答我自己的问题。
我解决这一问题的方法是将均方根属性设置为1,这样特权条件实际上可以工作,并为特权添加一个启动条件,该条件提供关于通过提升的命令提示符运行并退出安装的错误消息。
这有一个好的副作用--当从提升的命令提示符运行msi时,延迟CustomActions将作为当前用户以完全管理员令牌(而不是标准用户令牌)的身份运行,而不管NoImpersonate设置如何。
更多细节- http://www.microsoft.com/downloads/details.aspx?FamilyID=2cd92e43-6cda-478a-9e3b-4f831e899433
编辑-我把脚本放在这里,让您添加MSIUSEREALADMINDETECTION属性作为VS没有能力这样做,Orca是一个痛苦。
发布于 2008-11-20 04:57:56
清单中的requireAdministrator应该可以工作。
您还可以使用引导加载器.exe文件,它可以使用以"RUNAS“作为动词的ShellExecute (可以使用7-zip创建引导加载程序,或者有许多其他方法)。
发布于 2018-04-15 09:47:33
您可以使用Winrar为msi文件创建一个简单的msi sfx存档文件,这些选项如下:
https://stackoverflow.com/questions/304353
复制相似问题