我有一个脚本,我需要一些帮助来配置文件夹和子文件夹的集合上的权限继承
这是我到目前为止所拥有的:
cls
Set-Location "C:\Set-ACL"
$log = "C:\Set-ACL\Folders.txt"
#Gets the ACL's from a folder with correct permissions set
$ACL = Get-Acl -Path "C:\Folder\subfolder\subfolder\subfolder"
'$Folders = Get-ChildItem -Path "E:\Folder\Subfolder\*\*" | Select-String -pattern "01-"'
$Folders >> $log
Start-Process $log -Wait
#Function to pause script while ignoring certain keys like Ctrl etc.
'Function Pause4user($M = "Press any key to continue setting ACL's Ctrl + C to quit . . . ") { If ($psISE) { $S = New-Object -ComObject "WScript.Shell"; $B = $S.Popup("Click OK to continue.", 0, "Script Paused", 0); Return }; Write-Host -NoNewline $M; $I = 16, 17, 18, 20, 91, 92, 93, 144, 145, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183; While ($K.VirtualKeyCode -Eq $Null -Or $I -Contains $K.VirtualKeyCode) { $K = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown") }; Write-Host }'
Pause4user
foreach ($Folder in $Folders)
{
Set-ACL -Path $Folders -AclObject $ACL
Write-Host "ACL's Set"
Remove-Item $log
}
我发现的问题是我在变量$ ACL中定义的权限没有传递给所有子文件夹,并且在Get-ChildItem看起来像它会完成工作但是因为没有工作时使用-recurse路径中的260个字符限制。
有没有办法设置$ Folders变量中返回的文件夹的权限,并将这些权限继承到它下面的所有内容,因此没有遇到路径限制?
P.S。快速编写快速放在一起的脚本!
提前致谢
答案 0 :(得分:0)
是的,@ Cole9350说。在你的for循环中它意味着是$ Folder?目前$ Folders指向集合而不是集合中的项目
此外,当您声明$ Folders时,您不需要语句周围的单引号