更改ROOT文件夹的权限



这是一个奇怪的问题-我有下面的脚本,它可以更改权限并正常工作。然而,它在我目标的根文件夹下面的文件夹上执行。。。但不会更改ROOT文件夹本身的排列!

那么,我该如何更改ROOT文件夹和子文件夹的权限。。。

$ROOT_FOLDER = "\SERVERd$filesuatw9rarW7_ADOBE_AIR"
Get-ChildItem $ROOT_FOLDER -Recurse | Where-Object {$_.PSIsContainer} | ForEach-Object {
    $FullName = $_.FullName
    $ACL_LIST = Get-Acl $FullName
    $ACL_LIST.access | ForEach-Object  {
        if ($_.IdentityReference -eq "BFGACL-CHANGE-ALL-ROBS-UATW9GAR")
        {
            write-host $FullName -ForegroundColor white -NoNewline
            $colRights1 = [System.Security.AccessControl.FileSystemRights]"Modify,DeleteSubdirectoriesAndFiles" 
            $permission = "BFGACL-CHANGE-ALL-ROBS-UATW9GAR",$colRights1,"ContainerInherit,ObjectInherit”,”None”,”Allow” 
            $accessRule = New-Object System.Security.AccessControl.FileSystemAccessRule $permission 
            $ACL_LIST.SetAccessRule($accessRule)  
            $ACL_LIST | Set-Acl $FullName
            write-host " : set with 'Modify,DeleteSubdirectoriesAndFiles' permissions"
        }
    }
}

我得到的输出:

\SERVERd$filesuatw9rarW7_ADOBE_AIR251 : set with 'Modify,DeleteSubdirectoriesAndFiles' permissions
\SERVERd$filesuatw9rarW7_ADOBE_AIR25100 : set with 'Modify,DeleteSubdirectoriesAndFiles' permissions
\SERVERd$filesuatw9rarW7_ADOBE_AIR25100Adobe AIR : set with 'Modify,DeleteSubdirectoriesAndFiles' permissions
\SERVERd$filesuatw9rarW7_ADOBE_AIR25100SRV : set with 'Modify,DeleteSubdirectoriesAndFiles' permissions
\SERVERd$filesuatw9rarW7_ADOBE_AIR25100Adobe AIRVersions : set with 'Modify,DeleteSubdirectoriesAndFiles' permissions

Get-ChildItems按照锡上的指示执行。它将遍历所有包含的项,给出一个-path,在您的例子中是-recurse,并保持下去,直到它到达死胡同。

您可以做的是首先通过组合Get-ItemGet-ChildItem来构建一个目录阵列,如下所示:

$directories = @(Get-Item -path $ROOT_FOLDER | Where-object {$_.psIscontainer})
$directories += Get-ChildItem -path $ROOT_FOLDER -recurse | Where-object {$_.psIscontainer}
$directories | ForEach-Object {Do your stuff here}

最新更新