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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#网上找的现成的高级方法来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.SetAccessRuleProtection($false,$false)
            }
            'Disable' {
                $ACL.SetAccessRuleProtection($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" 
}

本文转自 beanxyz 51CTO博客,原文链接:http://blog.51cto.com/beanxyz/1901607,如需转载请自行联系原作者

POwershell 更改文件权限相关推荐

  1. linux两种方式改变文件权限,Linux更改文件权限的两种方式

    今天小编要跟大家分享一篇关于Linux更改文件权限的方式,喜欢Linux的小伙伴来看一看吧. 我们知道·Linux系统最主要的特点之一就是--Linux系统是多用户.多任务的操作系统. 何为多用户?就 ...

  2. LINUX:拷贝文件src/指定目录下,文件夹图标上有个叉.更改文件权限可解决该问题。

    1. Ubuntu环境下安装软件,在usr/share/指定目录下增加该软件的驱动文件时,文件夹图标上有个叉.该文件的权限信息不正确. 2.使用命令:chmod 更改文件权限.sudo chmod 7 ...

  3. Linux更改文件权限(一)

    更改文件权限(一) ============================== (参考于千锋教育教学笔记) 设置权限 1.更改文件的属主.属组 chown (change owner) [root@ ...

  4. linux中无法修改文件,无法在Linux中更改文件权限

    这似乎是一个非常基本的问题,但是我无法在linux中更改文件权限. 我是root用户,如果我在已安装的linux的文件系统中复制相同的文件,则可以更改文件许可权.我无法更改保留在另一个分区上的文件/文 ...

  5. 在linux中 更改文件权限的命令是,linux 更改文件权限命令 chmod

    chmod -change file mode bits :更改文件权限 chmod是用来改变文件或者目录权限的命令,但只有文件的属主和超级用户(root)才有这种权限. 更改文件权限的2种方式: 一 ...

  6. windows更改文件权限,获取SYSTEM 或者 Administrator权限,解决删除文件需要来自SYSTEM的权限

    1. 文件右键,属性,选择安全选项卡,点击高级 2.点击更改权限,查看是否可以直接添加权限,如果添加按钮可以点击,则跳转到第4步,否则继续下一步. 3.点击上图中的更改拥有者选项,依次点击 高级--查 ...

  7. 服务器文件权限755安全吗,乐道主机更改文件权限为755、644方法

    乐道主机分Directadmin主机面板和cPanel主机面板,二种面板设置文件权限方法有所不同,为了网站安全所有文件权限不要设置为777,不然网站会出现500错误,最高只能用755,单个文件设置为6 ...

  8. Linux下更改文件权限

    目录 查看文件权限 修改文件权限 查看文件权限 查看文件权限可以通过ls -l命令查看,如下所示: 如果只想查看某一个文件的权限,可以使用grep,如下所示: 可以发现,每一个文件的第一个字段都是由r ...

  9. linux更改文件权限chown,Linux 文件权限 chmod chown

    1. Linux 文件访问权限 chmod 是change mode 的缩写.同理chown是change owner的缩写,一个是改变文件的访问权限,一个是改变文件的所有者. 2. 改变文件访问权限 ...

最新文章

  1. 管理不再是交换,而是相互成全!做到这三点,管理更有成效!
  2. 一个基于Python2.7的智慧校园系统
  3. Azure手把手系列6:存储服务介绍
  4. SAP Kyma和SAP云平台上的Service instance
  5. (44)FPGA面试题CMOS和TTL电路区别
  6. 网络商城html前端,商城 前端 html 页面 模板
  7. property attribute: assign, strong, weak, unsafe_unretain and copy
  8. n9 android模拟器,Android软件将兼容诺基亚N9
  9. 简单的求三角函数sin,cos的图像
  10. 雷电模拟器+proxifier
  11. java怎么获取观看记录_java – 在Android手机上获取用户行为(应用历史记录,浏览历史记录等)...
  12. 安卓客户端代码中修改服务器ip,安卓客户端代码中修改服务器ip
  13. 滕州一中计算机竞赛,滕州市北辛中学被评为全国青少年信息学奥林匹克联赛优秀参赛学校...
  14. Ubuntu查看IP地址
  15. Biotin-PEG8-amine,2183447-27-8具有末端伯胺基的生物素化试剂
  16. 线性代数(九) : 矩阵的行简化阶梯型和标准型
  17. js爬取今日头条头条号的文章
  18. 如何发表期刊方法步骤
  19. Day73.SpringMVC案例:影院系统、使用Restful风格重构
  20. Kali beef-xss实现Xss详细教程。

热门文章

  1. 正则表达式简介及在C++11中的简单使用
  2. Windows Caffe中MNIST数据格式转换实现
  3. 【Git】git系统学习(一):常用指令
  4. java filefilter递归_Java中的递归+文件过滤器
  5. python目标检测与识别_Python 使用Opencv实现目标检测与识别的示例代码
  6. php url 安全性,在php中获取url内容的安全性
  7. python并发编程方法_Python Futures并发编程详解
  8. Redis初学:4(Redis的常用命令)
  9. Java项目:在线课程会员系统(java+Springboot+Maven+JSP+Spring+Mysql+layui)
  10. python后端学什么框架_献给正在学习python的你, 10个最受欢迎的Python开源框架