【问题标题】:“Save” admin privileges for deployed program已部署程序的“保存”管理员权限
【发布时间】:2019-09-12 20:43:19
【问题描述】:

我写了一个程序,它使用一些文件读/写。 然后部署,并安装在我的电脑上。问题是,如果我不以管理员身份运行该程序,它就不会“获得”对文件夹/文件的访问权限。如果我将清单文件中的程序设置为“requireAdministrator”设置,UAC 总是提示我授予它权限。

我尝试在没有清单设置(设置为 asInvoker)的情况下运行程序,并在安装后设置文件夹/文件安全设置以授予用户与管理员相同的权限。结果:工作得很好。

更多“可接受”的解决方案:

1:我想“保存”管理设置,而不是不断的 uac 提示。 (用户只安装程序会更方便,而不是深入文件夹设置和更改安全属性。)

2:安装后运行脚本为用户设置文件夹设置,(并将清单设置为Invoker)。

3:还有什么想法吗? :-D

【问题讨论】:

  • 这可能是一个愚蠢的问题,但是......有没有办法重新进行读/写,使其不能在文件系统的管理员区域中工作?

标签: c# .net winforms uac


【解决方案1】:

我的一个项目也遇到了类似的问题。这是设计使然,您能想象是否有任何可执行文件具有管理员级别的读/写权限? WinXP 的“乐趣”又来了。

一个“懒惰”的解决方法:我刚刚将它安装到C:\Users\(user)\(program) 文件夹,并为所有内容使用相对路径。默认情况下,您可以指示安装程序在那里安装您的应用程序。只要您真的不需要其他任何管理员权限,就应该没问题。我相信 Visual Studio Code 的构建也可以做到这一点,所以它并非闻所未闻。

一个不那么懒惰的解决方法:使用AppDataDocuments 文件夹中的文件夹来读取/写入所有数据文件。

祝你好运:)

【讨论】:

  • 我最终使用了默认的“AppData”位置,它现在可以完美运行。谢谢!
【解决方案2】:

不幸的是,这意味着让应用程序能够规避 UAC 授权的需要,并且根据设计,UAC 不能以这种方式被绕过。

【讨论】:

    猜你喜欢
    • 2014-11-17
    • 1970-01-01
    • 2015-03-03
    • 1970-01-01
    • 1970-01-01
    • 2013-07-20
    • 2011-01-17
    • 2015-05-07
    • 1970-01-01
    相关资源
    最近更新 更多