如何在 Windows 7 上显示/更改文件的所有者

Kev*_*gan 19 windows-7 command-line permissions

有没有办法在 Windows 7 命令提示符下从命令行显示文件夹和文件的所有者?

您可以将文件夹或文件的所有者更改为某个不是您自己用户名的“任意”用户吗?

我有一些文件夹(和文件)可能是我删除的应用程序遗留下来的。如果我尝试查看文件夹的内容,我会被告知我无权这样做,即使我以“管理员”身份运行。

我可以“取得所有权”(我认为这会成功,但还没有尝试过)文件夹(文件),但是如果我需要将所有权恢复给以前的所有者,我需要知道原始所有者的用户名所有者,我需要能够“授予所有权”给该用户。

是否可以从 Windows 命令提示符(或者如果不能,从 GUI 工具)执行此操作?

Art*_*Art 21

您可以通过takeown命令和 Windows GUI从命令行获取所有权。

您可以使用带有 /q 参数的DIR查看文件/文件夹的所有者

通过右键单击 Windows 资源管理器(文件或文件夹)中的对象,选择“属性”,然后导航到“安全”选项卡,您可以通过 Windows GUI 查看(和取得)所有权。在“安全”选项卡上,单击“高级”按钮,然后在随后显示的“高级安全设置”对话框中,导航到“所有者”选项卡。

一旦您获得了文件/文件夹的所有权,Windows 就不会跟踪以前的所有者,因此无法恢复到以前的所有者。此外,如果您使用的文件系统类型不支持这些扩展属性(如 FAT16、FAT32、exFAT 等),则没有所有权或文件权限的概念。


sch*_*000 5

您可以wmic像这样查询所有权信息:

wmic path Win32_LogicalFileSecuritySetting where Path="C:\\windows\\winsxs" ASSOC /RESULTROLE:Owner /ASSOCCLASS:Win32_LogicalFileOwner /RESULTCLASS:Win32_SID
Run Code Online (Sandbox Code Playgroud)

不要使用,dir因为所有权信息可能会被裁剪,就像这个示例目录一样。

要获得格式化的输出,DOMAIN\USER您可以使用以下批处理脚本:

@ECHO OFF
SETLOCAL EnableDelayedExpansion
REM Escpe the backslash with \\
SET ESCAPED=%~f1
SET ESCAPED=!ESCAPED:\=\\!

wmic path Win32_LogicalFileSecuritySetting where Path="!ESCAPED!" ASSOC /RESULTROLE:Owner /ASSOCCLASS:Win32_LogicalFileOwner /RESULTCLASS:Win32_SID > "%temp%\wmi.tmp"

for /F "skip=2 delims=€" %%G in ('type %temp%\wmi.tmp') do (call     :process_wmioutput "%%G")
goto :continue
:process_wmioutput
SET UNDELIMITED=%1
SET DELIMITED=!UNDELIMITED:  =€!
FOR /F "delims=€ tokens=10,12" %%G in ("!DELIMITED!") DO (ECHO %%H\%%G)
exit /B

:continue
Run Code Online (Sandbox Code Playgroud)


Dav*_*ter 4

caclsicalcs可以编辑权限并takeown允许取得所有权。AFAIK 它们也存在于 Windows 7 中。通常,一旦您执行了takeown,您就可以跟进caclsicalcs授予自己对该对象的权限。

\n\n

Microsoft\xe2\x80\x99s 安全模型不允许将所有权授予某人,而只能获取所有权。这样,管理员(或其他特权用户)就无法直接获取其无法访问的文件的所有权、访问或修改该文件,以及在不通知原始所有者的情况下将其返还给原始所有者。

\n\n

编辑:感谢Art对 的使用的描述takeown

\n

  • 我知道这已经过时了,但我想我应该补充一点,您可以使用 icacls 将所有者设置为其他人。 icacls <路径> /SETOWNER <名称> 有效。当然,您需要成为所有者或拥有适当的权限才能执行此操作,以便您可以制定获取所有权并归还所有权的场景(前提是您首先有能力获取所有权)。 (2认同)
  • *微软的安全模型不允许将所有权授予某人,而只能接受。*我很抱歉,但这只是无稽之谈。我在各种 Windows 服务器(回到 2008 R2)和客户端(回到 Windows 7)操作系统上不断地执行此操作。一旦您成为文件的所有者,您就可以为自己分配全部权限,以对其执行“所有操作”,包括将所有权更改为任何其他用户。 (2认同)

归档时间:

查看次数:

114201 次

最近记录:

7 年,4 月 前