zoukankan      html  css  js  c++  java
  • 如何用程序删除win 7下SYSTEM权限的目录

    win7系统由于安装程序等操作,可能会在系统中留下一些所有权限是SYSTEM角色的目录,例如我的系统以前在C盘的QQ卸载后的遗留文件(下图)。

    System是Windows系统中最高权限角色(组),比Administrator用户权限高,这样的目录无法手工删除。网上给的方法是右键点击文件夹-属性-安全-高级-所有者改为当前用户,权限标签页选中当前用户(一般就是administrator了)。这时候我们常常希望勾选下面的2个选项然后点确定对子文件夹做同样的修改,但这时候子目录还是SYSTEM组权限的,只能一个个手动修改,如果子目录数量或者层数多的话这将非常麻烦,最好写程序修改。 类似的中文资料比较少,下面是一些能用的资料链接和我的代码。程序只是把目录和里面的文件的owner从SYSTEM改为当前用户,然后可右键选中一次删除。

    看了一些链接,下面的stackoverflow文章的回复给出的代码是比较简单的,感觉比搜到的C++代码明显简单:

    http://stackoverflow.com/questions/5368825/taking-ownership-of-a-file-or-folder

    但是这个文件用到了一个dll引用,在这里:http://processprivileges.codeplex.com

    下面是控制台程序,对文件夹和子文件夹进行操作用到典型的递归处理。.net framework选择4.0,起初默认的3.0的不支持引用的dll,3.5的没试,IDE是VS 2012。如果环境不一样由于控制台程序比较简单直接用Program.cs修改也不麻烦: 下载链接

  • 相关阅读:
    php二维数组排序
    重学C语言 -- printf,scanf
    php调试利器 -- xdebug
    composer php依赖管理工具
    现代php开发
    php新特性--持续更新
    2016年书单
    jenkins集成gitlab实现自动合并
    etcd安装
    nginx 日志切割
  • 原文地址:https://www.cnblogs.com/eternalwt/p/3515319.html
Copyright © 2011-2022 走看看