You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

移动硬盘更换电脑后文件出现SID格式未知所有者无法访问,批量修改权限受阻求助

移动硬盘更换电脑后文件出现SID格式未知所有者无法访问,批量修改权限受阻求助

兄弟,我太懂你这种逐个右键改权限的崩溃了!先给你理清楚我的问题情况:

问题详情

把移动硬盘换到新电脑后,里面的文件/文件夹所有者全变成了一串S-15-21-17...的SID乱码,现在根本打不开这些文件。目前我只会手动逐个右键改所有权,但效率太低了;更糟的是,选中多个文件时连「安全」选项卡都进不去,完全没法批量操作。

两张截图的情况说明:

  1. 第一张图里,文件列表的「所有者」列全是类似S-15-21-17...的SID代码,根本认不出正常用户名
  2. 第二张图显示,选中多个文件打开属性窗口后,「安全」选项卡直接没法访问,批量操作彻底卡死

亲测有效的批量解决方法

给你几个不用手动逐个改的办法,亲测好用:

方法1:用CMD批量抢回所有权(最快最直接)

  1. 右键「开始菜单」→ 选择「Windows 终端(管理员)」(老系统选「命令提示符(管理员)」)
  2. 输入硬盘盘符切换过去,比如你的硬盘是D盘,就敲:
    D:
    
  3. 接着输入这条命令,一键获取当前目录下所有文件+子文件夹的所有权:
    takeown /f * /r /d Y
    
    简单解释下参数:
    • /f *:对当前目录下所有文件生效
    • /r:递归处理所有子文件夹,不用挨个进目录
    • /d Y:遇到文件夹时自动确认,不用手动点确定

方法2:用PowerShell批量设置全权限(如果还要改访问权限)

如果抢回所有权后还是没法访问,就用PowerShell批量加权限:

  1. 同样以管理员身份打开Windows终端(PowerShell模式)
  2. 切换到硬盘盘符:
    Set-Location D:
    
  3. 复制粘贴下面的命令,给你当前用户加上完全控制权限:
    Get-ChildItem -Recurse | ForEach-Object {
        $acl = Get-Acl $_.FullName
        $rule = New-Object System.Security.AccessControl.FileSystemAccessRule($env:USERNAME, "FullControl", "ContainerInherit,ObjectInherit", "None", "Allow")
        $acl.AddAccessRule($rule)
        Set-Acl $_.FullName $acl
    }
    

方法3:图形界面绕路批量改(怕命令行的话用这个)

如果实在不想碰命令行,试试这个绕开多文件不能进安全卡的方法:

  1. 先找一个单独的文件/文件夹,手动右键改好所有权(就按你原来的方法改一次)
  2. 右键它选「属性」→「安全」→「高级」
  3. 点击「更改权限」,先勾选「包括可从该对象的父项继承的权限」,点应用
  4. 再勾选「替换所有子对象权限项」,确认后,这个文件夹下的所有子文件/文件夹都会自动继承这个权限设置,不用一个个改

小提醒

操作前最好先备份下重要文件,虽然这些方法很稳,但不怕一万就怕万一嘛!

备注:内容来源于stack exchange,提问作者user4951

火山引擎 最新活动