一名司机留在注册表中(甚至当我卸载它从系统中)一个烂摊子。如果我检查安全设置,它将不会在“组或用户名”中显示任何内容。当我查看所有者时,它只显示“无法显示当前所有者”。当我想要删除注册表项时,我必须:
取得所有权。
添加组。
删除密钥。
问题是每个注册表都有几个子密钥,我必须在每个密钥上重复该过程。继承权限选项在注册表编辑器中不起作用。是的,我以管理员模式运行注册表编辑器。
问题
我想写一个简单的C#代码,将循环,并删除所有密钥。我发现了一些代码示例,但在我的情况下,任何OpenSubKey调用都会失败,并显示错误: System.Security.SecurityException:不允许请求的注册表访问。 如果任何OpenSubKey函数调用失败,我如何更改所有权?有没有其他命令可以声明所有权,然后删除注册表项?
谢谢大家的支持
您必须以管理员身份运行您的应用程序。看到这个问题:http://stackoverflow.com/questions/2818179/how-to-force-my-net-app-to-run-as-administrator-on-windows-7 – 2013-03-10 11:09:54
你已经找到了一个很好的理由**不**写一个程序来做到这一点。这并不是说你不能使它工作,而是调试它是如此危险。发生在我们最好的人身上,像[Paul DiLascia](http://www.microsoft.com/msj/1299/comtoys/comtoys.aspx),滚动到“来自地狱的可怕轶事”。 – 2013-03-10 12:08:32