powershell文件权限操作
获取文件或文件夹访问权限:
Get-Acl -Path <File or Folder Path> | Format-List
修改文件访问权限:
修改文件访问权限需要用到Set-Acl命令,使用-Path参数指定要修改的文件路径,使用-AclObject参数指定一个对象,该对象相当于一个ACL模板,此ACL模板指定了用户访问资源的权限设定。该对象的设定需要调用"System.Security.AccessControl.FileSystemAccessRule"类。
$account = "test01win2k8r2\test"
$FileSystemRights = "FullControl" $objType = [System.Security.AccessControl.AccessControlType]::Allow
$accessRule = New-Object System.Security.AccessControl.FileSystemAccessRule ($account,$FileSystemRights,$objType)
$Folder = "W:\Test\test.txt"
$acl = Get-Acl $Folder
$acl.SetAccessRule($accessRule)
Set-Acl -Path $Folder -AclObject $acl
还可以通过Get-Acl获取一个文件的访问权限,然后修改另一文件使其具有同样的访问权限:
Get-Acl "W:\Test\test01.txt" | Set-Acl -Path "W:\Test\test02.txt"
修改文件夹访问权限:
与修改文件访问权限类似,同样应用Set-Acl命令,只是在调用FileSystemAccessRule时可以多指定参数InheritanceFlags和PropagationFlags来指定访问权限的设定是否被子文件或子文件夹继承:
http://msdn.microsoft.com/en-us/library/system.security.accesscontrol.inheritanceflags.aspx
http://msdn.microsoft.com/en-us/library/system.security.accesscontrol.propagationflags.aspx
$account = "test01win2k8r2\test"
$FileSystemRights = "FullControl"
$InheritanceFlag = [System.Security.AccessControl.InheritanceFlags]::ObjectInherit
$PropagationFlag = [System.Security.AccessControl.PropagationFlags]::None
$objType = [System.Security.AccessControl.AccessControlType]::Allow
$accessRule = New-Object System.Security.AccessControl.FileSystemAccessRule ($account,$FileSystemRights,$InheritanceFlag,$PropagationFlag,$objType)
$Folder = "W:\Test\"
$acl = Get-Acl $Folder
$acl.SetAccessRule($accessRule)
Set-Acl -Path $Folder -AclObject $acl
以上内容从网上借鉴可供参考,因项目最近经常出现一个问题就是website站点目录授予的用户权限一段时间后就会丢失,因此头让写一个判断文件夹用户权限是否存在不存在就添加上的Powershell脚本,因此开始看powershell资料,完成了本系列的学习笔记,并完成判断文件夹权限不存在就添加权限的完整脚本,完整脚本代码如下:
echo "old Rights"#显示原有文件夹权限
$path="E:\test\"#文件夹路径
$rights="BUILTIN\Guests"#需要权限的用户
(get-acl -path $path).access |Select-Object -Property IdentityReference #显示原有文件夹权限
echo ""
echo "****************************"
echo ""
echo ""
echo "result:"
echo ""
$aa=(get-acl -path $path).access | where-object -filterscript{$_.identityreference -eq $rights}#判断是否有权限
if ($aa -eq $null){
$account = $rights
$FileSystemRights = "FullControl"
$InheritanceFlag = [System.Security.AccessControl.InheritanceFlags]::ObjectInherit
$PropagationFlag = [System.Security.AccessControl.PropagationFlags]::None
$objType = [System.Security.AccessControl.AccessControlType]::Allow $accessRule = New-Object System.Security.AccessControl.FileSystemAccessRule ($account,$FileSystemRights,$InheritanceFlag,$PropagationFlag,$objType)
$Folder = $path
$acl = Get-Acl $Folder
$acl.SetAccessRule($accessRule) Set-Acl -Path $Folder -AclObject $acl
echo "success"
}else{
echo "Existing permissions"
}
echo ""
echo ""
echo "****************************" echo "new Rights"#输出新的文件夹权限
echo ""
(get-acl -path $path).access |Select-Object -Property IdentityReference
powershell文件权限操作的更多相关文章
- Linux学习之CentOS(四)----Linux文件属性、所有者、群组、其他组及文件权限操作简要总结
Linux文件属性.所有者.群组.其他组及文件权限操作简要总结 首先介绍一个重要的知识点:文件属性控制权限 [root@www ~]# ls -al total 156 drwxr-x--- 4 ro ...
- 学习linux之用户-文件-权限操作
添加用户组 添加 gropuadd 用户组名 修改 groupmod 用户组名 删除 groupdel 用户组名 添加用户 添加 useradd 用户名 设密码 passwd 密码 删除 userde ...
- linux常用命令---文件权限操作
文件权限
- Android中的文件权限操作
默认本工程创建的文件本工程对其有读写权限. 我们可以通过context.openFileOutput("文件名", 模式): 我们可以创建私有, 共有, 只读, 只写文件, 默认的 ...
- linux笔记六-------文件权限设置
1.文件(目录)权限本身划分:读read 写write 执行execute 权限从用户的角度划分:主人权限user 同组用户权限group 其他组用户的权限other music. ...
- 认识 Linux 文件权限
Linux 之所以是比较安全的操作系统,和它丰富的文件权限设定是有关系的,学习 Linux 操作系统一定要懂文件的权限识别和设置.通过这篇博文我们了解 Linux 操作系统的文件权限. 拥有者 / ...
- 野路子出身PowerShell 文件操作实用功能
本文出处:http://www.cnblogs.com/wy123/p/6129498.html 因工作需要,处理一批文件,本想写C#来处理的,后来想想这个是PowerShell的天职,索性就网上各种 ...
- (转)linux sudo 重定向,实现只有系统管理员才有权限操作的文件中写入信息
众所周知,使用 echo 并配合命令重定向是实现向文件中写入信息的快捷方式. 本文介绍如何将 echo 命令与 sudo 命令配合使用,实现向那些只有系统管理员才有权限操作的文件中写入信息. 比如 ...
- C 语言函数手册:涵盖字符测试、字符串操作、内存管理、时间换算、数学计算、文件操作、进程管理、文件权限控制、信号处理、接口处理、环境变量、终端控制
1. 字符测试函数 函数 说明 isascii() 判断字符是否为ASCII码字符 2. 字符串操作 函数 说明 gcvt() 将浮点型数转换为字符串(四舍五入) index() 查找字符串并返回首次 ...
随机推荐
- minishift安装
先下载安装包 https://github.com/minishift/minishift/releases mac上运行命令 minishift start --vm-driver=virtualb ...
- mydate97的时间格式设置
<script type="text/javascript" src="./WdatePicker.js"></script> < ...
- [转]SSIS数据转换组件_派生列、审核、字符映射转换和条件性拆分转换
本文转自:http://www.cnblogs.com/gudujianxiao/archive/2012/04/14/2446925.html 一 派生列 派生列转换通过对输入列进行类型转换或应用表 ...
- 摄像头模组光学CRA(chief ray angle)
http://blog.csdn.net/sylorchen/article/details/54618874 Lens CRA CRA(Chief Ray Angle):从镜头的传感器一侧,可以聚焦 ...
- http网络通信--页面源代码查看
1.要在andorid中实现网络图片查看,涉及到用户隐私问题,所以要在AndroidManifest.xml中添加访问网络权限 <uses-permission android:name=&qu ...
- 解决ping 127.0.0.1不通的问题
用树莓派放在家里当pt下载器,一直挺惬意的,因为没有公网ip用vps和frp配置代理,偶尔ssh上去看看,一段时间也用得好好的. 可是最近这几天,在办公室ssh上去死活连不上. 于是回去后开始折腾,局 ...
- JQuery的get、post和ajax方法的使用
在JQuery中可以使用get,post和ajax方法给服务器端传递数据 get方法的使用(customForGet.js文件): function verify(){ //1.获取文本框的数据 // ...
- Python的多进程编程
Python在2.6引入了多进程的机制,并提供了丰富的组件及api以方便编写并发应用.multiprocessing包的组件Process, Queue, Pipe, Lock等组件提供了与多线程类似 ...
- MySQL数据库的查询缓冲机制
MySQL数据库的查询缓冲机制 2011-08-10 11:07 佚名 火魔网 字号:T | T 使用查询缓冲机制,可以极大地提高MySQL数据库查询的效率,节省查询所用的时间.那么查询缓冲机制是怎样 ...
- Codeforces 8D Two Friends 三分+二分+计算几何
题目链接:点击打开链接 题意:点击打开链接 三分house到shop的距离,二分这条斜边到cinema的距离 #include<stdio.h> #include<string.h& ...