0

这让我发疯。我搜索了整个 StackOverflow 并阅读了有关 UAC 的所有信息。但我仍然遇到问题。

使用 VS 2008,我有一个简单的程序,除此之外什么都不做:

File.Delete("c:\windows\fonts\whatever.ttf")

EXE 有一个适当的清单,其中 requireAdministrator=True。编译后,应用程序图标会收到盾牌图标。当我启动应用程序时,以管理员或标准用户身份登录,我收到“您是否希望以下程序进行更改...”确认对话框。此外,我在 EXE 上使用了代码签名证书。

运行应用程序时,我得到以下行为:

当我以管理员身份登录时运行应用程序时,该文件被删除。

但是,当以标准用户身份登录时,我会收到 UAC 提示并输入管理员密码,但在执行删除操作时会收到“文件访问被拒绝”错误。

谁可以给我解释一下这个?我认为清单中的 requiresAdministrator=True 提升了流程。但我仍然无法删除系统文件。

谢谢。

4

1 回答 1

1

它确实提升了进程,但如果文件具有访问控制,规定只有管理员组的成员可以修改或删除它,并且“标准”用户不是管理员组的成员,那么他仍然不能修改文件。

于 2009-12-10T20:44:24.673 回答