1

目前,由于安装问题,我正在调查 Windows 安装程序日志文件。

一个日志文件包含以下属性:MsiTrueAdminUser = 1

那么 AdminUser = 1 和 MsiTrueAdminUser = 1 有什么区别呢?在我的开发人员电脑上,我只看到 AdminUser = 1,但看不到 MsiTrueAdminUser = 1。要获得 MsiTrueAdminUser = 1,需要哪个设置?

日志文件中还有另一条语句(MsiTrueAdminUser = 1):MSI_LUA:将 MsiRunningElevated 属性设置为 1,因为安装已经在提升运行。

在其他系统上,此行包含: MSI_LUA:将 AdminUser 属性设置为 1,因为这是客户端或用户已允许提升

我已经尝试从 msdn 获得答案,但没有记录此属性。

4

2 回答 2

0

我不确定这个属性是否被记录在案。我通常使用Privileged 属性

于 2013-07-07T11:56:54.583 回答
0

在每种情况下,我真的不认为这两个问题真的是你的问题。而且我有一些经验。你不是在寻找正确的东西,我猜,你已经很深了。放弃您的“MsiTrueAdminUser”搜索是我的建议。此外,我与克里斯托弗分享这个想法。

发布基本问题行为可能会更成功。您知道 UAC 及其对 MSI 的影响吗?我将从那里开始。对于 MSI,只要您以提升的权限启动 MSI,您是否是内置的“管理员”用户并不重要。

有两个常见的问题。我猜他们会造成超过 90% 的“海拔”问题。第一个问题是,如果您已经以提升的权限启动 msi,或者您等到 msi 对话框要求它,它会有所不同。如果可能,请尝试确保第一种情况,例如使用 setup.exe 引导程序。

第二个问题是了解,当 msi 使用哪些权利时。为了用一句话来简化它,它使用启动时的权限,但是在操作 InstallInitialize 和 InstallFinalize 之间(这是完成真正更改的地方!)它从本地系统帐户使用它们,不管是什么它开始的权利。(假设它是提升的而不是每个用户的安装)

请记住,本地系统帐户的权限设置与管理员略有不同,因此您可能正在寻找错误的详细信息。

如果您必须处理自定义操作,这两个问题会变得非常复杂。然后有一个独特的 MSI 知识需要找出您的操作是从哪些权限开始的。大多数时候都存在问题。

通常,在提到的部分 (InstallInitialze/InstallFinalize) 之外的其他位置的设置中使用提升的权限并不是很好的风格。如果您是设置作者,我首先建议您阅读最佳实践。

于 2013-07-09T16:51:09.250 回答