从普通应用程序的正常特权帐户调用具有提升权限的应用程序,并将其放入Program Files时导致问题

问题描述:

我有一个需要以普通权限运行的程序。为了防止盗版,在推出我们的应用程序中,我们推出了许可证管理应用程序,它需要与提升特权运行。在与我们的供应商询问,许可证管理器似乎有这种提升的权限在其app.manifest文件,这是必要的阅读某种磁盘ID信息补充,所以它是强制性的(我们不能减少它的特权要求)。从普通应用程序的正常特权帐户调用具有提升权限的应用程序,并将其放入Program Files时导致问题

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> 

应用程序成功启动许可证管理如果它被放置在一个正常的文件夹中。然而,当它被放置在Program Files文件夹中时,它似乎在启动时关闭而没有暗示。

我们还检查了没有添加许可证管理器(它工作正常)与正常的凭据运行应用程序。

我们需要某种形式的设置无论是在注册表中或在其他一些Windows设置进行更改,以使发射正常帐户提升特权应用程序。或者可能需要在可启用此方案的代码启动部分添加一些代码片段。

我们甚至试图粘贴在Program Files文件到桌面(它也运行良好)创建的文件夹。

操作系统:Windows 7

请让我知道,如果需要的形式我身边的任何其他信息。对此方向的任何帮助表示赞赏。

+0

在事件查看器中出现此错误的任何痕迹? – kennyzx

+0

@kennyzx,我可以在哪里找到事件查看器? –

+0

Google可以提供帮助。或者通过执行“eventvwr.exe” – kennyzx

寒舍appologies与Program Files文件目录假设的问题。

事实证明,由许可证管理器写入的日志正在写入当前应用程序执行文件夹中。当应用程序没有将文本文件写入此文件夹的权限时,尝试将日志写入Program Files文件夹导致此问题。

日志逻辑在许可证管理器(从我们称为在许可证管理器中定义的函数的程序(它正在写入日志)和从Program Files文件夹运行的应用程序之间共享。

我们将日志创建文件夹更改为AppData文件夹。这导致应用程序成功启动。

原因结论:从没有管理员权限的应用程序在Program Files文件夹

写日志文件。

注:我添加这篇文章,这个答案纯粹是为了帮助其他像我这样的,如果他们没有在这类情况下的解决方案。