首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >更改根文件夹的权限

更改根文件夹的权限
EN

Stack Overflow用户
提问于 2015-02-20 19:57:09
回答 1查看 455关注 0票数 1

这是一个奇怪的问题--我有下面的脚本,它可以改变权限,并且运行良好。但是,它会在根文件夹下的文件夹上执行此操作,因为targeted...but不会更改根文件夹本身的权限!

那么,如何更改根文件夹和子文件夹的权限...

代码语言:javascript
运行
复制
$ROOT_FOLDER = "\\SERVER\d$\files\uatw9rar\W7_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 "BFG\ACL-CHANGE-ALL-ROBS-UATW9GAR")
        {
            write-host $FullName -ForegroundColor white -NoNewline
            $colRights1 = [System.Security.AccessControl.FileSystemRights]"Modify,DeleteSubdirectoriesAndFiles" 
            $permission = "BFG\ACL-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"

        }

    }
}

我得到的输出:

代码语言:javascript
运行
复制
\\SERVER\d$\files\uatw9rar\W7_ADOBE_AIR\251 : set with 'Modify,DeleteSubdirectoriesAndFiles' permissions
\\SERVER\d$\files\uatw9rar\W7_ADOBE_AIR\251\000 : set with 'Modify,DeleteSubdirectoriesAndFiles' permissions
\\SERVER\d$\files\uatw9rar\W7_ADOBE_AIR\251\000\Adobe AIR : set with 'Modify,DeleteSubdirectoriesAndFiles' permissions
\\SERVER\d$\files\uatw9rar\W7_ADOBE_AIR\251\000\SRV : set with 'Modify,DeleteSubdirectoriesAndFiles' permissions
\\SERVER\d$\files\uatw9rar\W7_ADOBE_AIR\251\000\Adobe AIR\Versions : set with 'Modify,DeleteSubdirectoriesAndFiles' permissions
EN

回答 1

Stack Overflow用户

发布于 2015-02-20 20:12:46

Get-ChildItems做到了它在罐头上说的话。它将遍历所有包含的项,并给出一个-path,在本例中为-recurse,并继续前进,直到走入死胡同。

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

代码语言:javascript
运行
复制
$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}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28628428

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档