gpt4 book ai didi

c++ - 如何在我的代码中查找(并删除)需要管理员权限的位置?

转载 作者:太空宇宙 更新时间:2023-11-04 12:36:30 25 4
gpt4 key购买 nike

我有一个最初在 XP 中开发的多进程应用程序,最初设计时没有考虑管理员权限。我们过去常常使用该软件配置和销售计算机。我们现在单独销售应用程序,无需硬件,安装在企业环境中的用户系统上。目前我们的软件包要求我们的用户以管理员模式运行,这使我们不受客户 IT 部门的欢迎。

我一直在努力删除明显需要管理员权限的项目(写入注册表中的 HKLM,写入 Program Files 文件夹)。但是,Windows 仍然需要管理员权限才能运行该软件。如果我拒绝这些权利,它会关闭并且没有日志。它有很多遗留代码,因此很难找到管理员访问权限的提示。

是否有一种简单的方法来查看正在访问或完成的操作是否符合 Windows 10 管理员要求?

目前我已经删除了将我可以识别的数据文件移动到 Program Data 文件夹或用户文档中。 (取决于我是否希望用户能够轻松找到它们)。

配置文件已移至用户文件夹。

注册表 key 访问权限已保留给 HKLU 或在 HKLM 中为只读。

最佳答案

谢谢大家的帮助。我最终在我们软件的基于 C# 的启动器中找到了答案,该启动器使用动词“runas”集启动所有进程:

        try
{
myProcess.StartInfo.Verb = "runas";
myProcess.StartInfo.FileName = command;
myProcess.StartInfo.WorkingDirectory = workingDir;
myProcess.StartInfo.Arguments = prams;
myProcess.Start();

} catch (异常前){}

我删除了“runas”动词,现在系统不再请求对开始的代码片段的管理员权限。

当我尝试从 Program Files 目录设置调试运行并在不通过启动程序的情况下启动代码时,我找到了原因。 (在调试器中启动)系统没有请求管理权限,这让我回到了启动器。我最近让启动器在不需要管理权限的情况下运行,所以我假设问题出在其他进程中。看来我错了。

关于c++ - 如何在我的代码中查找(并删除)需要管理员权限的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56214065/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com