设置继承的Powershell问题

时间:2014-05-28 15:12:50

标签: powershell-v2.0 file-permissions

我有一个脚本,我需要一些帮助来配置文件夹和子文件夹的集合上的权限继承

这是我到目前为止所拥有的:

    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。快速编写快速放在一起的脚本!

提前致谢

1 个答案:

答案 0 :(得分:0)

是的,@ Cole9350说。在你的for循环中它意味着是$ Folder?目前$ Folders指向集合而不是集合中的项目

此外,当您声明$ Folders时,您不需要语句周围的单引号