【发布时间】:2016-09-14 20:59:37
【问题描述】:
我用 c# 编写了一个小程序,可以帮助我公司在许可证之间切换。它是一个带有不同选项的菜单的托盘图标。
它会更改环境变量,并且需要在其清单中具有提升的权限。
这意味着每次程序启动时都会显示 UAC 警告,这并不理想,因为在 Windows 启动时让程序自动启动会非常好,而不会一直显示警告。
有什么好的方法吗?
是否可以:
- 在没有提升权限的情况下运行程序并且只获取 UAC 当我调用函数更改变量时发出警告。
- 更改 没有管理员权限的环境变量。
- 以编程方式将程序添加到“白名单”(虽然更现实,但手动添加)
我知道 UAC 是用来防止恶意软件的,但如果能以一种使我能够在 Windows 启动时启动程序的方式来解决这个问题,那就太好了。
我无法解决这个问题的任何灵丹妙药。
有什么建议吗?
【问题讨论】:
-
不是每个病毒、木马和恶意软件都会利用这个吗?
-
解决这个问题的正常方法是您拥有一个 Windows 服务,该服务以您的程序与之对话的系统权限运行,在安装阶段设置。
-
是的,我知道 UAC 就是因为这个原因。但是肯定有没有警告的具有管理员权限的软件,对吗??
-
使用安全证书,并可选择将程序放在 Program Files 文件夹中。
-
程序启动与否,运行时不能“升级”。但是,您可以做的是以管理员身份启动程序的第二个副本,并使用一些命令行参数告诉它完成工作然后退出。