把文件或目录的所有权收归当前管理员,以恢复访问。
takeown 让管理员成为文件或目录的所有者,常用于 ACL 把管理员也挡在外面、需要先取得所有权再改权限的场景。/f 指定目标,/a 把所有权给 Administrators 组而不是当前用户,/r 递归,/d y|n 在无读取权限的目录上自动回答确认。它只改所有者,不改 DACL;拿到所有权后通常还要用 icacls 授予自己访问权限。
边界:所有权不等于访问权。NTFS 上所有者有权修改 DACL,但如果连读取都做不到,仍需先提权或用 /a 取得组所有权,再授权。takeown 不适合修复系统文件:对 C:\Windows、WinSxS、Program Files 等目录改所有权可能破坏 Windows 资源保护、更新和服务账户,应该用 sfc、DISM 或系统还原处理。
Windows Vista/Server 2008 起内置,Windows 10/11 与 Server 2016+ 语法一致。CMD 和 PowerShell 都调用 takeown.exe;PowerShell 查看所有者可用 Get-Acl,但没有同名别名,参数不变。
影响范围 / 先备份 / 如何回滚:/r /d y 会递归接管整棵目录树的所有权,系统目录可能因此无法更新或启动服务。执行前先用 dir /q 记录原所有者、用 icacls /save 保存 ACL,并创建还原点;回滚时用 icacls /setowner 把所有者改回记录的账户(如 NT SERVICE\TrustedInstaller),再 /restore 原 ACL。改回系统账户通常需要管理员和还原权限,不能只靠普通写权限。
# 1. 先记录原所有者,便于回滚
C:\> dir /Q C:\locked\file.txt
# 2. 取得单个文件的所有权
C:\> takeown /F C:\locked\file.txt
# 3. 把所有权给 Administrators 组,适合多人管理
C:\> takeown /F C:\locked\file.txt /A
# 4. 递归接管目录,并对无权限目录自动回答 Y
C:\> takeown /F C:\locked /R /D Y
# 5. 取得所有权后授予当前账号完全控制,再处理文件
C:\> takeown /F C:\locked /R /D Y & icacls C:\locked /grant "%USERDOMAIN%\%USERNAME%":(OI)(CI)F /T
# 6. 回滚示例:把所有者改回原账户(替换为第 1 步记录的值)
C:\> icacls C:\locked\file.txt /setowner "NT SERVICE\TrustedInstaller"
takeown 只改所有者,不会自动给你读权限;如果 ACL 仍然拒绝,接着用 icacls /grant 授权。/d 只能和 /r 一起用(官方说明);无人值守的递归接管不写 /d 会停在确认提示上。? 和 * 的通配模式不被支持;需要批量处理时用目录加 /r,或先用 dir 生成明确清单。sfc /scannow、DISM /Online /Cleanup-Image /RestoreHealth。TrustedInstaller 或 SYSTEM,不是当前用户;不做记录就无法准确回滚,icacls /setowner 也需要足够权限。合上页面,先回答,再展开对照。
takeown 取得所有权后,为什么还可能读不了文件?/r 和 /d 是什么关系?无人值守时缺 /d 会怎样?icacls /grant 授权。/d 必须配合 /r;缺 /d 时遇到无读取权限的目录会停下等确认。sfc、DISM 或系统还原。
小程序版
微信扫码,随时查命令