【发布时间】:2019-05-20 03:44:24
【问题描述】:
我有一个多进程应用程序,它最初是在 XP 中开发的,最初设计时没有考虑管理员权限。我们曾经用该软件配置和销售计算机。我们现在单独销售该应用程序,无需硬件,可安装在公司环境中的用户系统上。目前我们的软件包要求我们的用户在管理员模式下运行,这并没有使我们在客户 IT 部门中受欢迎。
我一直在努力删除显然需要管理员权限的项目(写入注册表中的 HKLM,写入 Program Files 文件夹)。但是,Windows 仍然需要管理员权限才能运行该软件。如果我否认这些权利,它会在没有日志的情况下关闭。它有很多遗留代码,因此很难找到管理员访问发生位置的提示。
是否有一种简单的方法可以查看正在访问或完成的哪些内容符合 Windows 10 管理员要求?
目前,我已将我可以识别的数据文件的移动写入删除到 Program Data 文件夹或用户文档。 (取决于我是否希望用户能够轻松找到他们)。
配置文件已移至用户文件夹。
注册表项访问权限已保留到 HKLU 或在 HKLM 中为只读。
【问题讨论】:
-
不能简单调试一下吗?
-
@user2379024 您的软件中有 UAC 清单吗?如果是这样,您将
requestedExecutionLevel设置为什么?确保不是requireAdministrator -
@RemyLebeau 我可能记错了很久以前看到的东西;可能与检测安装程序/安装程序有关。也许缺少清单就足以触发它?
-
Jabberwocky -> 不幸的是它在调试中没有遇到访问问题。仅在安装位置...并在启动时立即。我必须在设置测试时发挥创造力才能找到它。
-
@user2379024 -> 我检查了所有清单...都设置为“asinvoker”
标签: c++ windows lua privileges administrator