powershell Set-Acl实例
发布网友
发布时间:2023-05-28 13:35
我来回答
共1个回答
热心网友
时间:2023-10-08 23:39
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 cmdlet 获取 C:\Temp 目录中的所有文本文件。Recurse 参数将该命令扩展到 C:\temp 的所有子目录。Include 参数将检索的文件*为具有“.txt”文件扩展名的文件。Force 参数获取本来会被排除的隐藏文件。(无法使用“c:\temp\*.txt”,因为 Recurse 参数作用于目录,而不是文件。)
管道运算符 (|) 将表示检索到的文件的对象发送到 Set-Acl 命令,该命令将 AclObject 参数中的安全描述符应用到管道中的所有文件。
实际上,最好将 Whatif 参数与可以影响多个资源的所有 Set-Acl 命令一起使用。在此示例中,管道中的第二个命令将为“set-acl -aclobject $newacl -whatif”。此命令列出将受该命令影响的文件。在检索结果之后,可以不带 Whatif 参数再次运行该命令。