AccessChk v6.15

作者:Mark Russinovich

发布日期:2022 年 5 月 11 日

Download下载 AccessChk(1 MB)
立即Sysinternals Live 运行。

简介

为了确保其创建的环境是安全的,Windows 管理员通常需要了解特定用户或组对哪此类型的资源具有访问权限,资源包括文件、目录、注册表项、全局对象和 Windows 服务等。 AccessChk 能够以直观的界面和输出快速回答此类问题。

安装

AccessChk 是一个控制台程序。 将 AccessChk 复制到可执行路径上。 键入“accesschk”会显示其使用语法。

使用 AccessChk

用法:

accesschk [-s][-e][-u][-r][-w][-n][-v]-[f <account>,...][[-a]|[-k]|[-p [-f] [-t]]|[-h][-o [-t <object type>]][-c]|[-d]] [[-l [-i]]|[username]] <file, directory, registry key, process, service, object>
参数 说明
-a 名称是 Windows 帐户权限。 指定 "*" 为名称以显示分配给用户的所有权限。 请注意,指定特定权限时,仅显示直接分配给此权限的组和帐户。
-c 名称是 Windows 服务,例如 ssdpsrv。 指定 "*" 作为名称,以显示所有服务和 scmanager,检查服务控制管理器的安全性。
-d 仅进程目录或顶级键
-e 令显示明确设置的完整性级别(Windows Vista 以及更高级别)
-f 如果遵循 -p,则显示包括组和权限在内的进程令牌完整信息。 否则是由逗号分隔的帐户列表,用于从输出进行筛选。
-h 名称是文件或打印机共享。 将 "*" 指定为显示所有共享的名称。
-i 转储完整访问控制列表时,忽略仅具有继承的 ACE 的对象。
-k 名称是注册表项,例如 hklm\software
-l 显示完整的安全描述符。 添加 -i 以忽略继承的 ACE。
-n 仅显示没有访问权限的对象
-o 名称是对象管理器命名空间中的对象(默认为根)。 若要查看目录中的内容,请指定以斜杠为结尾的名称,或添加 -s。 添加 -t 和对象类型(如部分),以便仅查看特定类型的对象。
-p 名称是进程名称或 PID,例如 cmd.exe(将 "*" 指定为显示所有进程的名称)。 添加 -f 以显示包括组和权限在内的进程令牌完整信息。 添加 -t 以显示线程。
-nobanner 不显示启动横幅和版权消息。
-r 仅显示具有访问权限的对象
-s Recurse
-t 对象类型筛选器,例如 "section"
-u 禁止显示错误
-v 详细(包括 Windows Vista 完整性级别)
-w 仅显示具有写入权限的对象

如果指定用户或组名称和路径,AccessChk 将报告该帐户的有效权限;否则,它将显示安全描述符中引用的帐户的有效访问权限。

默认情况下,路径名称被解释为文件系统路径(使用 "\pipe\" 前缀来指定已命名的管道路径)。 对于每个对象,如果帐户具有读取权限,W 具有写入权限,以及两项权限中任何一项都没有,则 AccessChk 打印“R”。 -v 开关让 AccessChk 转储授予帐户的特定访问权限。

示例

以下命令报告 Power 用户帐户对 \Windows\System32 中的文件和目录具有的访问权限:

accesschk "power users" c:\windows\system32

此命令显示用户组中哪些 Windows 服务成员具有写入访问权限:

accesschk users -cw *

查看 HKLM\CurrentUser 下特定帐户无权访问的注册表项:

accesschk -kns austin\mruss hklm\software

查看 HKLM\Software 密钥的安全性:

accesschk -k hklm\software

查看 Vista 上的 \Users\Mark 下具有显式完整性级别的所有文件:

accesschk -e -s c:\users\mark

查看每个人都可以修改的所有全局对象:

accesschk -wuo everyone \basednamedobjects

Download下载 AccessChk(1 MB)
立即Sysinternals Live 运行。