Set-Acl 帮助信息

来源:互联网 发布:大数据公司面临的问题 编辑:程序博客网 时间:2024/05/22 02:12

如下说明是翻译: help Set-Acl 产生的帮助信息.

译者: Edengundam(马涛)

 

Set-Acl

 

大纲

修改指定资源的安全描述符, 例如文件或注册表键.

 

语法

Set-Acl [-path] <string[]> [-aclObject] <ObjectSecurity> [-filter <string>] [-include <string[]>] [-exclude <string[]>] [-passThru] [-whatIf] [-confirm] [<CommonParameters>]

 

详细描述

Set-Acl cmdlet修改指定资源的安全描述符为你提供的安全描述符, 例如文件或注册表键.

 

在使用Set-Acl, 使用参数Path指定你要修改安全描述符的资源, 使用参数AclObject来指定你希望的安全描述符值. Set-Acl将参数AclObject提供的值作为模板, 来修改资源上的安全描述符.

 

参数

 

-path <string[]>

指定你需要修改的资源. 输入资源的路径, 例如文件系统或注册键的路径. 这里允许使用通配符.

 

如果你将安全对象传递给Set-Acl (不管是使用参数AclObject或传递一个从命令Get-Acl取得的对象给Set-Acl), 而没有提供Path(名字与值都没有提供), Set-Acl将会使用安全对象中的路径.

 

强制参数?

true

参数位置?

1

默认值

 

允许从管道绑定输入?

true (根据属性名)

允许通配符扩展?

true

 

-aclObject <ObjectSecurity>

指定具有期望值的ACL. Set-Acl改变参数Path指向资源的ACL为此参数输入的对象值.

 

你可以将Get-Acl命令的输出结果保存到一个变量中, 然后将该变量通过参数AclObject传递给命令. 你也可以使用Get-Acl构成的表达式来给AclObject传值.

 

强制参数?

true

参数位置?

2

默认值

 

允许从管道绑定输入?

true (根据值)

允许通配符扩展?

false

 

-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

 

-passThru <SwitchParameter>

输出此命令创建的对象到管道中. 默认情况下, 此命令不会将对象输出到管道.

 

强制参数?

false

参数位置?

named

默认值

False

允许从管道绑定输入?

false

允许通配符扩展?

false

 

-whatIf

描述执行此命令将会发生的现象, 不会真正执行此命令.

 

强制参数?

false

参数位置?

named

默认值

 

允许从管道绑定输入?

false

允许通配符扩展?

false

 

-confirm

执行命令前提示你进行确认.

 

强制参数?

false

参数位置?

named

默认值

 

允许从管道绑定输入?

false

允许通配符扩展?

false

 

<公共参数>

此命令支持公共参数: -Verbose, -Debug, -ErrorAction, -ErrorVariable, and -OutVariable. 更多信息, 输入, "get-help about_commonparameters".

 

注意

 

更多信息, 输入 "Get-Help Set-Acl -detailed". 需要技术信息, 输入 "Get-Help Set-Acl -full".

 

Windows PowerShell文件系统和注册表providers支持Set-Acl cmdlet. 也就是说, 你能使用它改变文件, 目录和注册表键的安全描述符.

 

如果需要为该命令提供多个参数, 请使用逗号进行分隔. 例如, "<parameter-name> <value1>, <value2>".

 

1

 

C:/PS>$DogACL = get-acl c:/dog.txt

 

C:/PS>set-acl -path C:/cat.txt -AclObject $DogACL

 

这些命令将文件Dog.txt的安全描述符拷贝给文件Cat.txt. 当命令完成后, 文件Dog.txtCat.txt的文件描述符是一样的.

 

第一个命令使用Get-Acl cmdlet取得文件Dog.txt的安全描述符. 赋值运算符(=)将安全描述符存储到变量$DogACL.

 

第二命令调用了Set-Acl文件Cat.txtACL改变为$DogACL中的值.

 

参数Path指定了文件Cat.txt的路径. 参数AclObject的值是ACL的模板, 这个例子中, Dog.txtACL被存储在变量$DogACL.

 

2

 

C:/PS>get-acl c:/dog.txt | set-acl -path C:/cat.txt

 

这个例子的命令和上一个例子几乎一模一样, 区别只在于使用管道运算符将Get-Acl输出的安全描述符传递给命令Set-Acl.

 

第一个命令使用Get-Acl cmdlet取得文件Dog.txt的安全描述符. 管道运算符(|)将表示Dog.txt安全描述符传递给命令Set-Acl.

 

第二个命令Set-AclDog.txt的安全描述符应用于Cat.txt. 当命令执行完, Dog.txtACLCat.txt是一致的.

 

3

 

C:/PS>$newACL = get-acl file0.txt

C:/PS>get-childitem c:/temp -recurse -include *.txt -force | set-acl -aclobject $newacl

 

此命令将文件File0.txt的安全描述符应用到C:/Temp目录和其子目录中的所有文本文件.

 

第一个命令取得当前目录下的文件File0.txt的安全描述符使用赋值运算符(=)将其存储在变量$newACL.

 

管道线中第一个命令Get-Childitem返回目录C:/Temp. 参数Recurse将指示该命令处理C:/temp和其子目录. 参数Include限制只取得文件扩展名为".txt"的文件. 参数Force指示操作包含隐藏文件, 如果没有使用此参数, 此命令将会忽略隐藏文件. (你不能使用"c:/temp/*.txt", 这是因为参数Recurse只适用于在目录上, 而不能适用于文件上.)

 

管道运算符(|)将取得的文件传递给Set-Acl命令, Set-Acl将会应用参数AclObject提供的安全描述到所有管道中的对象.

 

在实践中, 你最好在使用对于会影响多于一个资源的Set-Acl命令时, 先行带有参数Whatif的命令. 这个情况下, 管道线中的第二个命令将会是"set-acl -aclobject $newacl -whatif". 此命令就会列出将会被命令影响的所有文件. 在检查过输出后, 你再执行没有参数Whatif的命令.

 

相关链接

Get-Acl

about_namespace