即使具有管理员权限,C#也无法访问系统文件

时间:2014-09-08 07:17:33

标签: c# system privileges

我的应用程序需要改变一些系统文件。 (比如删除Windows事件日志 “C:\ Windows \ System32 \ winevt \ Logs”目录。 (与Ccleaner有些相似)

但即使使用管理员权限,我甚至无法从应用程序中看到这些日志文件。

我的应用程序清单文件有这一行:

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

我用“以管理员身份运行”运行我的应用程序。

我的应用程序如何具有“系统”权限,或者有任何方法可以实现此目的。

当使用管理员权限运行系统文件时,有许多应用程序可以更改。

谢谢..

注意:我需要更改的文件的所有者看起来像“本地服务”。

2 个答案:

答案 0 :(得分:1)

如果你不能看到文件,我想知道这是x86还是x64的东西;根据您的程序是32位还是64位,系统文件夹重定向会发生很多魔法。无论它是什么:尝试将其编译为“另一个”,并查看它是否有效。例如,如果您的程序当前是32位,则显式编译为64位。

答案 1 :(得分:0)

.net框架有一个辅助类,它将返回不同文件夹的真实路径。 http://msdn.microsoft.com/en-us/library/system.environment.getfolderpath(v=vs.110).aspx

如果要删除系统文件夹中的某些内容,则需要检查系统是否运行64位,如果“logs”文件夹位于Environment.SpecialFolder.System或Environment.SpecialFolder.SystemX86 < / p>