如下说明是翻译
PowerShell
中
: help Get-Acl
产生的帮助信息
.
译者
: Edengundam(
马涛
)
Get-Acl
摘要
获取资源的安全描述符
,
例如文件或注册表键
.
语法
Get-Acl [[-path] <string[]>] [-filter <string>] [-include <string[]>] [-exclude <string[]>] [-audit] [<CommonParameters>]
详细描述
Get-Acl cmdlet
取得表示文件或资源的安全描述符
.
安全描述符包含了资源的访问控制列表
(ACLs). ACL
指定了用户和用户组对资源具有的访问权限
.
参数
-path <string[]>
指定资源的路径
. Get-Acl
取得路径指定的资源的安全描述符
.
允许使用通配符
.
如果你省略了参数
Path, Get-Acl
取得当前目录的安全描述符
.
参数名称
("-Path")
为可选项
.
强制参数
?
|
false
|
参数位置
?
|
1
|
默认值
|
|
允许从管道绑定输入
?
|
true (
根据值
,
根据属性名
)
|
允许通配符扩展
?
|
true
|
-filter <string>
指定特定
provider
格式或语言的过滤器
.
此参数值用于限定
Path
参数
.
过滤器的语法取决于
provider
(
是否支持通配符也依赖
provider)
.
过滤器相比其他参数更加有效
,
主要因为
provider
取值时候使用过滤器
,
而不是等到
provider
将所有内容返回后
,
由
Windows PowerShell
过滤对象
.
强制参数
?
|
false
|
参数位置
?
|
named
|
默认值
|
|
允许从管道绑定输入
?
|
false
|
允许通配符扩展
?
|
false
|
-include <string[]>
取得指定的项
.
此参数值用于限定
Path
参数
.
输入一个路径元素或模式
,
例如
"*.txt"
(
此参数允许通配符
)
.
强制参数
?
|
false
|
参数位置
?
|
named
|
默认值
|
|
允许从管道绑定输入
?
|
false
|
允许通配符扩展
?
|
true
|
-exclude <string[]>
忽略指定的项
.
此参数值用于限定
Path
参数
.
输入一个路径元素或模式
,
例如
"*.txt"
(
此参数允许通配符
)
.
强制参数
?
|
false
|
参数位置
?
|
named
|
默认值
|
|
允许从管道绑定输入
?
|
false
|
允许通配符扩展
?
|
true
|
-audit <SwitchParameter>
从系统访问控制列表
(SACL)
中取得安全描述符的审计数据
.
强制参数
?
|
false
|
参数位置
?
|
named
|
默认值
|
False
|
允许从管道绑定输入
?
|
false
|
允许通配符扩展
?
|
false
|
<
公共参数
>
此命令支持公共参数
: -Verbose, -Debug, -ErrorAction, -ErrorVariable, and -OutVariable.
更多信息
,
输入
, "get-help about_commonparameters".
输入类型
String
返回类型
System.Security.AccessControl.DirectorySecurity
对象
注意
更多信息
,
输入
"Get-Help Get-Acl -detailed".
需要技术信息
,
输入
"Get-Help Get-Acl -full".
如果需要为该命令提供多个参数
,
请使用逗号进行分隔
.
例如
, "<parameter-name> <value1>, <value2>".
默认情况下
, Get-Acl
显示资源的
Windows PowerShell
路径
(<provider>::<resource-path>),
资源的属主以及访问权限
(
资源的自由访问控制列表
(DACL)
中的访问控制项的列表或数组
).
资源的属主控制
DACL
列表
.
当你将结果格式化为列表时
("get-acl | format-list"),
除了路径
,
属主
,
访问列表外
, Windows PowerShell
还将显示如下域
:
·
Group:
属主的安全组
.
·
Audit:
系统访问控制列表
(SACL)
中的列表
(
数组
). SACL
指定了
Windows
产生的审计记录的尝试访问的类型
.
·
Sddl:
资源的安全描述以安全描述符定义语言的文本字符串格式显示
. Windows PowerShell
使用安全描述的
GetSddlForm
方法取得此数据
.
因为文件系统和注册表提供程序支持
Get-Acl,
你可以使用
Get-Acl
查看文件系统上对象
(
例如
:
目录和文件
)
的
ACL
和注册表对象
(
例如
:
注册表项和条目
).
例
1
C:/PS>get-acl C:/windows
此命令取得
C:Windows
目录的安全描述符
.
例
2
C:/PS>get-acl C:/Windows/k*.log | select-object PSPath, Sddl | format-list
此命令取得
C:/Windows
目录中所有以
"k"
开头的日志文件的路径和
SDDL
字符串
.
命令使用
Get-Acl
取得表示每个日志文件的安全描述符
.
它将结果发送给
Select-Object
cmdlet,
后者只选择
PSPath
和
SDDL
域的值
.
接下来
,
它将结果发送给
Format-List
cmdlet
将结果显示为列表形式
.
因为数值过长将会在表格中被截断
,
因此列表经常在
Windows Powershell
中使用
.
对于系统管理员来说
SDDL
的值非常有价值
,
这是因为这个简单的字符串包含了安全描述符中的所有的信息
.
类似的是它们能够被容易的传递和保存
,
必要的时候还可以被分析
.
例
3
C:/PS>get-ACL c:/windows/k*.log -Audit | foreach-object { $_.Audit.Count }
此命令取得目录
C:/Windows
中
,
以
"k"
开头的日志文件的文件描述符
.
它使用了
Audit
参数从安全描述符中的
SACL
中取得审计记录
.
接下来它使用
ForEach-Object
参数
,
来计算每个文件关联的审计记录的数量
.
结果是表示每个日志文件的审核记录数量的数值列表
.
例
4
C:/PS>get-acl -path hklm:/system/currentcontrolset/control | format-list
此命令使用
Get-Acl
取得注册表中
Control
子项
(HKLM/SYSTEM/CurrentControlSet/Control)
的安全描述符
.
参数
Path
指定了
Control
子项的路径
.
管道运算符
(|)
将
Get-Acl
取得的安全描述符传给
Format-List
命令
,
后者为了方便阅读
,
将安全描述的属性格式化成一个列表
.
相关链接
Set-Acl
about_namespace