Windows:在命令行中列出文件及其权限(访问)

61 windows command-line

在 linux 中,ls -l列出文件权限,如下所示:

-rw-r--r--  1 user user      924 2011-07-01 20:23 test.txt
Run Code Online (Sandbox Code Playgroud)

在 Windows 中,命令treedir没有列出权限的选项。如何仅使用命令行列出文件及其权限?

use*_*686 66

使用icacls

> icacls Music
Music SNOW\grawity:(I)(F)
      CREATOR OWNER:(I)(OI)(CI)(IO)(F)
      SNOW\grawity:(I)(OI)(CI)(IO)(F)
      NT AUTHORITY\SYSTEM:(I)(OI)(CI)(F)
Run Code Online (Sandbox Code Playgroud)

旧的cacls工具是 Windows XP 上的唯一选择 [尽管您可以icacls.exe从 Server 2003复制]。cacls不知道某些 ACL 模式,但可以正常显示其中的大部分。

> cacls Music
F:\Users\Mantas\Music SNOW\grawity:F
                      CREATOR OWNER:(OI)(CI)(IO)F
                      SNOW\grawity:(OI)(CI)(IO)F
                      NT AUTHORITY\SYSTEM:(OI)(CI)F
Run Code Online (Sandbox Code Playgroud)

在两个输出中,(OI)表示“对象继承”(文件将继承此 ACE)、(CI)“容器继承”(容器——即文件夹——将继承此 ACE)、(IO)“仅继承”。

微软也曾经单独提供了一个xcacls工具,但它的功能现在是icacls 的一部分。


squ*_*man 35

您可以使用 Powershell 和Get-Acl命令

PS C:\> Get-Acl

   Directory:

Path              Owner                            Access  
----              -----                            ------  
C:\               NT SERVICE\TrustedInstaller      Everyone Allow  FullControl
Run Code Online (Sandbox Code Playgroud)

将它与Get-ChildItem(以dirls为别名)结合使用以获取文件的权限。

PS C:\> Get-ChildItem | Get-Acl
Run Code Online (Sandbox Code Playgroud)

或者,使用别名:

PS C:\> Dir | Get-Acl
Run Code Online (Sandbox Code Playgroud)

  • `PS C:\> Get-Acl | fl` 以获得更好的列表。 (13认同)

JJS*_*JJS 15

您还可以查看Sysinternals 的AccessChk。可以更轻松地解析输出。

C:\Users\jeremy>accesschk myad\simmonsj c:\inetpub

Accesschk v5.11 - Reports effective permissions for securable objects
Copyright (C) 2006-2012 Mark Russinovich
Sysinternals - www.sysinternals.com

RW c:\inetpub\custerr
RW c:\inetpub\history
RW c:\inetpub\logs
RW c:\inetpub\Roadkill
RW c:\inetpub\smartadmin
RW c:\inetpub\temp
RW c:\inetpub\wwwroot
Run Code Online (Sandbox Code Playgroud)


小智 6

dir /Q 为您提供目录的所有者。