系统学习 Windows 学习路径:从 CMD 到 PowerShell、系统网络,再到 WSL 与 Server

takeown

把文件或目录的所有权收归当前管理员,以恢复访问。

补充说明

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"

易错点与排错

相关命令

参考链接

读完自测

合上页面,先回答,再展开对照。

  1. takeown 取得所有权后,为什么还可能读不了文件?
  2. /r 和 /d 是什么关系?无人值守时缺 /d 会怎样?
  3. 接管系统目录所有权有什么风险?应该优先用什么修复?
答案
  1. 所有权不等于访问权,ACL 仍可能拒绝;还要用 icacls /grant 授权。
  2. /d 必须配合 /r;缺 /d 时遇到无读取权限的目录会停下等确认。
  3. 可能破坏资源保护、更新和服务;优先用 sfc、DISM 或系统还原。
微信小程序码:扫码打开命令速查小程序

小程序版

微信扫码,随时查命令