有没有办法从 Windows 7 命令提示符中的命令行显示文件夹和文件的所有者?
您能将文件夹或文件的所有者更改为某个不是您自己的用户名的“任意”用户吗?
我有一些文件夹(和文件)大概我删除的应用程序留下的。如果我尝试查看文件夹的内容,系统会提示我没有权限,即使我以“管理员”身份运行。
我可以“取得文件夹(文件)的所有权”(我认为这会成功但还没有尝试过),但如果我需要将所有权恢复给前一个所有者,我需要知道原始所有者的用户名,并且我需要能够“授予所有权”给该用户。
是否可以通过 Windows 命令提示符执行此操作(如果不行,则可以通过 GUI 工具执行此操作)?
答案1
答案2
您可以使用wmic
如下方式查询所有权信息:
wmic path Win32_LogicalFileSecuritySetting where Path="C:\\windows\\winsxs" ASSOC /RESULTROLE:Owner /ASSOCCLASS:Win32_LogicalFileOwner /RESULTCLASS:Win32_SID
请勿使用,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
答案3
答案4
如果仅DIR
在 Microsoft 世界中使用,请尝试该/Q
选项。
例如:
DIR *.xlsx /Q