Error 0x80070522: A required privilege is not held by the client 权限问题的解决。
本来按照 Windows权限挣扎之cygwin复活记 和 完全解决Windows权限问题 来takeown和icacls已经可以完全解决权限问题了。但是NTFS ACL远比这要复杂。
- 0. 管理员cmd
- 1. owner权限获取
- 2. 删除操作系统程序(cygwin/bin/rm)
- 3. 删除JUNCTION链接(SysinternalsSuite)
- 4. 删除SYMLINKD链接
- 5. 修复根目录新建、拷贝文件0x80070522
起因是我要删除移动硬盘上面的一个老系统,本来这种权限问题我以前一直都是格盘这种简单粗暴,但是最高效的方法解决。不过今天就小小研究了一下,如何手工删除非活动中的系统C盘(也就是不是当前的C盘)。
由于我将cygwin的bin放在了path,所以要方便很多。当然rd /s
应该也可以达到部分效果。对于隐藏的,或者有系统权限的文件,del
和rd
都会拒绝或者找不到文件。
下面的过程假设是I盘要处理,同时主要的是一些最细化的技巧,并不在乎达到目的的方法。同时注意利用cmd的tab补全功能,它与bash的补全有所不同,是完整词条补全,并不是最长公共补全,个人认为cmd的补全更加方面。而且cmd的tab补全会自动添加引号,同时Windows下面不需要在乎大小写,tab补全时不用在意大小写。
0. 管理员cmd
win+x然后按下a键,左键回车。
1. owner权限获取
takeown /f i: /r
2. 删除操作系统程序(cygwin/bin/rm)
rm -rf Windows "Program Files (x86)" "Program Files" ProgramData hiberfil.sys pagefile.sys swapfile.sys
3. 删除JUNCTION链接(SysinternalsSuite)
junction -d "Documents and Settings"
4. 删除SYMLINKD链接
rd "I:\Users\All Users"
5. 修复根目录新建、拷贝文件0x80070522
icacls i:\ /setintegritylevel M
现在基本上这个盘就可以当做格式化后的那种盘使用了。最后这个5,使用的是setintegritylevel命令,其有L[ow] M[edium] H[igh]三种等级。
然后注意的是多dir /a
看看,也许还有较多隐藏文件、目录,可以按需删除。