非域加入服务器中无法删除无权限子文件夹的解决求助
非域加入服务器中无法删除无权限子文件夹的解决求助
兄弟,这种权限搞崩的情况我之前在维护非域服务器时碰到过,简直头大!别着急,咱们一步步来排查解决:
第一步:启用并切换到内置管理员账户
普通管理员账户有时候会被篡改的权限限制住,但Windows内置的管理员账户默认拥有最高权限,哪怕文件夹权限乱套也能大概率突破:
- 打开管理员身份的命令提示符,输入命令:
net user administrator /active:yes,回车执行后启用内置管理员。 - 切换到这个内置管理员账户登录服务器,再尝试操作。如果还是不行,重启服务器进入安全模式,用内置管理员登录——安全模式下很多权限限制会被自动放宽。
第二步:递归获取文件夹所有权
在安全模式+内置管理员环境下,先把那5个子文件夹的所有权抢回来:
- 打开命令提示符,导航到父文件夹P的路径,比如
cd D:\P - 单个处理子文件夹:
takeown /F "子文件夹名称" /R /D Y- 解释:
/R表示递归处理该文件夹下所有子文件和子文件夹,/D Y是遇到权限询问时默认选择“是”
- 解释:
- 批量处理5个文件夹更高效,写个简单批处理:
新建一个文本文档,粘贴以下代码,保存为takeownership.bat,放在P文件夹里右键以管理员运行:@echo off for /d %%i in (*) do takeown /F "%%i" /R /D Y
第三步:赋予管理员完全控制权限
拿到所有权后,给管理员账户加上完全控制权限才能删除文件夹:
- 单个文件夹命令:
icacls "子文件夹名称" /grant administrators:F /T- 解释:
/T表示递归给所有子对象加权限
- 解释:
- 批量处理批处理:
同样新建文本文档,粘贴以下代码保存为setperm.bat,右键管理员运行:@echo off for /d %%i in (*) do icacls "%%i" /grant administrators:F /T
终极招:镜像删除法(适用于所有权也拿不到的极端情况)
如果上面的方法都失败,试试用robocopy的镜像功能把目标文件夹清空:
- 先在任意位置新建一个空文件夹,比如
D:\EmptyFolder - 执行命令:
robocopy "D:\EmptyFolder" "D:\P\要删除的子文件夹名" /MIR
这个命令会强制把目标文件夹镜像成空文件夹,清空后就能直接删除空文件夹了!注意别写错路径,不然会误删其他内容!
最后兜底方案
要是所有方法都没用,那大概率是NTFS权限标记彻底损坏了。这时候建议先备份P文件夹里的其他重要内容,然后格式化整个分区——这是最后的无奈之举,不到万不得已别用。
备注:内容来源于stack exchange,提问作者Janus Engstrøm




