powershell文件权限操作

获取文件或文件夹访问权限

Get-Acl -Path <File or Folder Path> | Format-List

修改文件访问权限

修改文件访问权限需要用到Set-Acl命令,使用-Path参数指定要修改的文件路径,使用-AclObject参数指定一个对象,该对象相当于一个ACL模板,此ACL模板指定了用户访问资源的权限设定。该对象的设定需要调用"System.Security.AccessControl.FileSystemAccessRule"类。

1 $account = "test01win2k8r2\test"
2    $FileSystemRights = "FullControl"
3
4    $objType = [System.Security.AccessControl.AccessControlType]::Allow
5    $accessRule = New-Object System.Security.AccessControl.FileSystemAccessRule ($account,$FileSystemRights,$objType)
6    $Folder = "W:\Test\test.txt"
7    $acl = Get-Acl $Folder
8    $acl.SetAccessRule($accessRule)
9    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

 1  $account = "test01win2k8r2\test"
 2    $FileSystemRights = "FullControl"
 3    $InheritanceFlag = [System.Security.AccessControl.InheritanceFlags]::ObjectInherit
 4    $PropagationFlag = [System.Security.AccessControl.PropagationFlags]::None
 5    $objType = [System.Security.AccessControl.AccessControlType]::Allow
 6    $accessRule = New-Object System.Security.AccessControl.FileSystemAccessRule ($account,$FileSystemRights,$InheritanceFlag,$PropagationFlag,$objType)
 7    $Folder = "W:\Test\"
 8    $acl = Get-Acl $Folder
 9    $acl.SetAccessRule($accessRule)
10    Set-Acl -Path $Folder -AclObject $acl
以上内容从网上借鉴可供参考,因项目最近经常出现一个问题就是website站点目录授予的用户权限一段时间后就会丢失,因此头让写一个判断文件夹用户权限是否存在不存在就添加上的Powershell脚本,因此开始看powershell资料,完成了本系列的学习笔记,并完成判断文件夹权限不存在就添加权限的完整脚本,完整脚本代码如下:
 1 echo "old Rights"#显示原有文件夹权限
 2 $path="E:\test\"#文件夹路径
 3 $rights="BUILTIN\Guests"#需要权限的用户
 4 (get-acl -path $path).access |Select-Object -Property IdentityReference #显示原有文件夹权限
 5 echo ""
 6 echo "****************************"
 7 echo ""
 8 echo ""
 9 echo "result:"
10 echo ""
11 $aa=(get-acl -path $path).access  | where-object -filterscript{$_.identityreference -eq $rights}#判断是否有权限
12 if ($aa -eq $null){
13     $account = $rights
14     $FileSystemRights = "FullControl"
15     $InheritanceFlag = [System.Security.AccessControl.InheritanceFlags]::ObjectInherit
16     $PropagationFlag = [System.Security.AccessControl.PropagationFlags]::None
17     $objType = [System.Security.AccessControl.AccessControlType]::Allow
18
19     $accessRule = New-Object System.Security.AccessControl.FileSystemAccessRule ($account,$FileSystemRights,$InheritanceFlag,$PropagationFlag,$objType)
20     $Folder = $path
21     $acl = Get-Acl $Folder
22     $acl.SetAccessRule($accessRule)
23
24     Set-Acl -Path $Folder -AclObject $acl
25     echo "success"
26 }else{
27  echo "Existing permissions"
28 }
29 echo ""
30 echo ""
31 echo "****************************"
32
33 echo "new Rights"#输出新的文件夹权限
34 echo ""
35 (get-acl -path $path).access |Select-Object -Property IdentityReference
36
37     

powershell文件权限操作

时间: 2024-10-14 21:05:10

powershell文件权限操作的相关文章

Android中的文件权限操作

默认本工程创建的文件本工程对其有读写权限. 我们可以通过context.openFileOutput("文件名", 模式): 我们可以创建私有, 共有, 只读, 只写文件, 默认的文私有文件. 如果别的Android工程访问本工程的文件的话就会受限制, android的内核是linux, 所以他的文件管理和linux中的文件时一样的. 创建文件代码: /** * 创建各种文件 * @throws IOException * */ @SuppressLint({ "WorldW

Linux命令——Linux文件权限操作

基本知识 查看权限 命令:ls -l 查询结果如下 drwxrwxr-x 第1个字母:代表文件类型 第2~4字母:代表用户的权限 第5~7字母:代表用户组的权限 第8~10字母:代表其他的用户的权限 2:链接数 jingguoliang:所属用户 jingguoliang:所属用户组 4096:文件大小 Mar 21 09:31:最后修改时间 project:文件名 Linux文件类型 在Linux常见的文件类型有7种,分别如下所示 文件属性 文件类型 - 常规文件,即file d 目录文件 b

linux命令(16)---文件权限管理命令

在之前使用过windows系统的都知道,可为文件设置权限,那么这权限是怎么设置的,之前在"linux(15)---用户管理命令"中提到,系统中的用户主要是实现资源分享,那在系统中的文件权限自然也是针对用户而言设置的权限,如果没有系统没有用户,那设置权限也无意义,文件权限彻底是"某用户针对该文件有哪些权限"可对文件进行哪些相关操作. 在linux系统中具有着"一切皆文件的概念",当然也分了很多文件类型,但是在文件权限设置上只分为"文件权限

野路子出身PowerShell 文件操作实用功能

本文出处:http://www.cnblogs.com/wy123/p/6129498.html 因工作需要,处理一批文件,本想写C#来处理的,后来想想这个是PowerShell的天职,索性就网上各种搜,各种Demo,各种修改,花了半天时间,最后还是拼凑出来能达到效果了.本身对PowerShell并不熟悉,可能有些弯路,实现的也比较烂,总之是把各种小功能拼凑在一起,最后还是拼凑出来能达到效果了.如下是原始Demo,比较幼稚,权当是自己记录的笔记了 1,文件信息统计 如下文件夹下面有六个文本文件,

(转)linux sudo 重定向,实现只有系统管理员才有权限操作的文件中写入信息

众所周知,使用 echo 并配合命令重定向是实现向文件中写入信息的快捷方式. 本文介绍如何将 echo 命令与 sudo 命令配合使用,实现向那些只有系统管理员才有权限操作的文件中写入信息. 比如要向 test.asc 文件中随便写入点内容,可以: $ echo "信息" > test.asc # 或者 $ echo "信息" >> test.asc 下面,如果将 test.asc 权限设置为只有 root 用户才有权限进行写操作: $ sudo

Linux 给用户 赋某个文件夹操作的权限

https://my.oschina.net/cqyj/blog/1796047 在root用户登录的情况,赋予opt目录给liuhai这个用户权限 示例代码: # 将目录/opt 及其下面的所有文件.子目录的文件主改成 liuhai chown -R liuhai:liuhai /opt #给目录opt设置权限 chmod 760 /opt chown 命令 语法 chown(选项)(参数) 选项 -c或——changes:效果类似“-v”参数,但仅回报更改的部分: -f或--quite或——

linux文件权限管理与ACL访问控制列表

一.文件属性 1.文件属性: 文件属性操作 chown : change owner  ,设置文件所有者 chgrp : change group  ,设置文件的属组 文件属主修改: chown 格式:chown [OPTION]- [OWNER][:[GROUP]] FILE- 用法: OWNER OWNER:GROUPNAME    (同时修改属主.属组) :GROUPNAME                (默认属主,修改属组) ( 命令中的冒号可用.替换:) chown  –refere

Linux 文件权限总结

在 Linux 中最基本的任务之一就是设置文件权限.理解它们是如何实现的是你进入 Linux 世界的第一步.如您所料,这一基本操作在类 UNIX 操作系统中大同小异.实际上,Linux 文件权限系统就直接取自于 UNIX 文件权限(www.lampbrother.net). 但不要以为理解文件权限需要长时间的学习.事实上会很简单,让我们一起来看看你需要了解哪些内容以及如何使用它们. 基础概念 你要明白的第一件事是文件权限可以用来干什么.当你设置一个分组的权限时发生了什么?让我们将其展开来说,这个

C#设置文件权限

在开发中,我们经常会使用IO操作,例如创建,删除文件等操作.在项目中这样的需求也较多,我们也会经常对这些操作进行编码,但是对文件的权限进行设置,这样的操作可能会手动操作,现在介绍一种采用代码动态对文件设置权限的操作. 在对文件进行权限设置在DOtNet中,会采用FileSystemAccessRule类进行文件的权限操作. 1.现在看一下FileSystemAccessRule的实现代码: public FileSystemAccessRule( IdentityReference identi