POwershell 更改文件权限
admin
2023-08-01 00:20:08
0

今天需要给某个网络共享的大文件重新配置一个权限。这个文件夹下面有很多乱七八糟的小文件,很多创建人甚至已经离开公司了。如果一个个地目录手动修改所有者权限,再打开继承关系,这样比较麻烦,这个时候自然是用脚本比较方便了。

#网上找的现成的高级方法来enable继承关系
function Set-NTFSInheritance {
<#    
        .SYNOPSIS
        Enable or Disable the NTFS permissions inheritance.
        .DESCRIPTION
        Enable or Disable the NTFS permissions inheritance on files and/or folders.
        .EXAMPLE
        $Folders = Get-Childitem -Path 'e:\homedirs' | Where-Object {$_.Attributes -eq 'Directory'}
        $Folders | foreach {
            $_ | Set-NTFSInheritance -Enable
        }
        .NOTES
        Author   :  Jeff Wouters
        Date     :  8th of May 2014
#> 
    [cmdletbinding(defaultparametersetname='Enable')]
    param (
        [parameter(mandatory=$true,position=0,valuefrompipeline=$true,parametersetname='Enable')]
        [parameter(mandatory=$true,position=0,valuefrompipeline=$true,parametersetname='Disable')]
        $Path,
        [parameter(mandatory=$false,parametersetname='Enable')][switch]$Enable,
        [parameter(mandatory=$false,parametersetname='Disable')][switch]$Disable
    )
    begin {
    } process {
        $ACL = get-acl $_.FullName
        switch ($PSCmdlet.ParameterSetName) {
            'Enable' {
                $ACL.SetAcce***uleProtection($false,$false)
            }
            'Disable' {
                $ACL.SetAcce***uleProtection($true,$true)
            }
        }
        try {
            $ACL | Set-Acl -Passthru
        } catch {
            $_.Exception
        }
    } end {
    }
}

#自己调用一下上面的方法,基本上就是三步走,第一个夺取所有权;第二打开继承关系;第三在最上面设置权限
function ChangePermission {
[cmdletbinding(defaultparametersetname='Enable')]
    param (
        [Parameter(Mandatory=$true)]
        [string]
        $path,
        [Parameter(Mandatory=$true)]
        [string]
        $group
    )
   #Step 1: take over ownership
    takeown.exe  /f $path /r /d Y
    #Step 2:  enable inheritance for all subfolders
    $Folders = Get-Childitem -Path $path -Recurse
    $Folders | foreach {
        $_ | Set-NTFSInheritance -Enable
    }
    #Step3:   setup NTFS Modify permission from the parent folder
    $perm2=':(OI)(CI)(M)'
    write-host $path -ForegroundColor Cyan
    icacls $path /grant "$($group)$perm2"
}

#最后调用函数即可

$parent="\\syd02\Creative TRACK\CLIENT FOLDERS\WESTPAC"
Get-ChildItem  $parent | foreach {
$_.fullname
ChangePermission -path $_.FullName -group "Sydney Track Creative" 
}



相关内容

热门资讯

洪水中,村民用挖机和抓木器像抓... 7月7日,广西南宁宾阳县的一位博主在洋桥镇拍摄到村民动用挖机和抓木器像抓娃娃一样夹猪的名场面:一头头...
特朗普表态后,国际油价直线拉升 澎湃新闻记者 杨漾中东局势再度趋紧,国际油价大幅上涨。截至7月8日发稿,伦敦洲际交易所9月交货的布伦...
广西洪水,冲垮了瑞幸、蜜雪冰城... 多日来的暴雨,兜不住了。缺口分别出现在六蓝水库的东坝头、靠近电站坝段,造成约50米长的垮塌。洪水顺着...
山体滑坡下埋着的21人,只是去... 这个星期的消息,每条都看得人揪心。7月7日6时56分,甘肃陇南市宕昌县岷江林场发生滑坡,33人被困。...
以军称打死一名哈马斯精锐部队指... 当地时间8日,以色列国防军发布通告称,以军在7日针对加沙地带南部开展的军事行动中,打死了巴勒斯坦伊斯...
中公教育“低俗赌约”发帖人被证... 以“低俗赌约”将中公教育股价拉涨25%的发帖人安某(网名“南京路宝宝总”)被证监会立案调查。证监会7...
从“红牌特赦令”到3分钟卖2.... ·因凡蒂诺。(盖蒂图片社)足球对于他来说,早就不再是一份单纯的热爱和一项纯粹的运动。作者:徐力婧20...
北约秘书长为美国再次袭击伊朗做... 据凤凰卫视报道,北约秘书长吕特7月8日在土耳其安卡拉出席北约峰会期间接受采访时表示,“美国对伊朗发动...
洪水到来前,一个动物园老板选择... “洪水到来前,我们把猛兽区的笼门给锁死了。洪水过后,有20多种上百只动物被冲走,猛兽虽被锁在笼内未出...
积水迫使毒蛇向民居、楼道转移藏... 澎湃新闻记者 钟煜豪2026年7月8日下午,广西横州市融媒体中心对外公布了《洪涝灾害期间毒蛇咬伤防治...