[玩转系统] Set-Acl (Microsoft.PowerShell.Security)
作者:精品下载站 日期:2024-12-14 02:09:12 浏览:15 分类:玩电脑
Set-Acl (Microsoft.PowerShell.Security)
Set-Acl
模块 :Microsoft.PowerShell.Security更改指定项目(例如文件或注册表项)的安全描述符。
句法
Set-Acl
[-Path] <String[]>
[-AclObject] <Object>
[-ClearCentralAccessPolicy]
[-Passthru]
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Set-Acl
[-InputObject] <PSObject>
[-AclObject] <Object>
[-Passthru]
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Set-Acl
-LiteralPath <String[]>
[-AclObject] <Object>
[-ClearCentralAccessPolicy]
[-Passthru]
[-Filter <String>]
[-Include <String[]>]
[-Exclude <String[]>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
描述
此 cmdlet 仅适用于 Windows 平台。
Set-Acl
cmdlet 更改指定项目(例如文件或注册表项)的安全描述符,以匹配您提供的安全描述符中的值。
要使用 Set-Acl
,请使用 Path 或 InputObject 参数来标识要更改其安全描述符的项目。然后,使用 AclObject 或 SecurityDescriptor 参数提供具有您要应用的值的安全描述符。 Set-Acl
应用提供的安全描述符。它使用 AclObject 参数的值作为模型,并更改项目安全描述符中的值以匹配 AclObject 参数中的值。
示例
示例 1:将安全描述符从一个文件复制到另一个文件
$DogACL = Get-Acl -Path "C:\Dog.txt"
Set-Acl -Path "C:\Cat.txt" -AclObject $DogACL
这些命令将值从 Dog.txt 文件的安全描述符复制到 Cat.txt 文件的安全描述符。命令完成后,Dog.txt 和 Cat.txt 文件的安全描述符相同。
第一个命令使用 Get-Acl
cmdlet 获取 Dog.txt 文件的安全描述符。赋值运算符 (=
) 将安全描述符存储在 $DogACL 变量的值中。
第二个命令使用 Set-Acl
将 Cat.txt 的 ACL 中的值更改为 $DogACL
中的值。
Path 参数的值是 Cat.txt 文件的路径。 AclObject 参数的值是模型 ACL,在本例中,是保存在 $DogACL
变量中的 Dog.txt 的 ACL。
示例 2:使用管道运算符传递描述符
Get-Acl -Path "C:\Dog.txt" | Set-Acl -Path "C:\Cat.txt"
此命令与上一个示例中的命令几乎相同,只是它使用管道运算符 (|
) 将安全描述符从 Get-Acl
命令发送到Set-Acl
命令。
第一个命令使用 Get-Acl
cmdlet 获取 Dog.txt 文件的安全描述符。管道运算符 (|
) 将表示 Dog.txt 安全描述符的对象传递给 Set-Acl
cmdlet。
第二个命令使用 Set-Acl
将 Dog.txt 的安全描述符应用到 Cat.txt。命令完成后,Dog.txt 和 Cat.txt 文件的 ACL 相同。
示例 3:将安全描述符应用于多个文件
$NewAcl = Get-Acl File0.txt
Get-ChildItem -Path "C:\temp" -Recurse -Include "*.txt" -Force | Set-Acl -AclObject $NewAcl
这些命令将 File0.txt 文件中的安全描述符应用于 C:\Temp 目录及其所有子目录中的所有文本文件。
第一个命令获取当前目录中 File0.txt 文件的安全描述符,并使用赋值运算符 (=
) 将其存储在 $NewACL
变量中。
管道中的第一个命令使用 Get-ChildItem cmdlet 获取 C:\Temp
目录中的所有文本文件。 Recurse 参数将命令扩展到 C:\temp
的所有子目录。 Include 参数将检索的文件限制为具有 .txt
文件扩展名的文件。 Force 参数获取隐藏文件,否则这些文件将被排除。 (您不能使用c:\temp\*.txt
,因为Recurse参数适用于目录,而不适用于文件。)
管道运算符 (|
) 将表示检索到的文件的对象发送到 Set-Acl
cmdlet,该 cmdlet 将应用 AclObject 参数中的安全描述符到管道中的所有文件。
实际上,最好将 WhatIf 参数与所有可影响多个项目的 Set-Acl
命令一起使用。在本例中,管道中的第二个命令是 Set-Acl -AclObject $NewAcl -WhatIf
。此命令列出了将受该命令影响的文件。查看结果后,您可以在不使用 WhatIf 参数的情况下再次运行该命令。
示例 4:禁用继承并保留继承的访问规则
$NewAcl = Get-Acl -Path "C:\Pets\Dog.txt"
$isProtected = $true
$preserveInheritance = $true
$NewAcl.SetAccessRuleProtection($isProtected, $preserveInheritance)
Set-Acl -Path "C:\Pets\Dog.txt" -AclObject $NewAcl
这些命令禁用来自父文件夹的访问继承,同时仍保留现有的继承访问规则。
第一个命令使用 Get-Acl
cmdlet 获取 Dog.txt 文件的安全描述符。
接下来,创建变量以将继承的访问规则转换为显式访问规则。要保护与此关联的访问规则不被继承,请将 $isProtected
变量设置为 $true
。要允许继承,请将 $isProtected
设置为 $false
。有关详细信息,请参阅设置访问规则保护。
将 $preserveInheritance
变量设置为 $true
以保留继承的访问规则,或将 $false
设置为删除继承的访问规则。然后使用 SetAccessRuleProtection() 方法更新访问规则保护。
最后一个命令使用 Set-Acl
将安全描述符应用到 Dog.txt。该命令完成后,从 Pets 文件夹继承的 Dog.txt 的 ACL 将直接应用于 Dog.txt,并且添加到 Pets 的新访问策略不会更改对 Dog.txt 的访问权限。
示例 5:授予管理员对文件的完全控制权
$NewAcl = Get-Acl -Path "C:\Pets\Dog.txt"
# Set properties
$identity = "BUILTIN\Administrators"
$fileSystemRights = "FullControl"
$type = "Allow"
# Create new rule
$fileSystemAccessRuleArgumentList = $identity, $fileSystemRights, $type
$fileSystemAccessRule = New-Object -TypeName System.Security.AccessControl.FileSystemAccessRule -ArgumentList $fileSystemAccessRuleArgumentList
# Apply new rule
$NewAcl.SetAccessRule($fileSystemAccessRule)
Set-Acl -Path "C:\Pets\Dog.txt" -AclObject $NewAcl
此命令将授予 BUILTIN\Administrators 组对 Dog.txt 文件的完全控制权。
第一个命令使用 Get-Acl
cmdlet 获取 Dog.txt 文件的安全描述符。
接下来创建变量以授予 BUILTIN\Administrators 组对 Dog.txt 文件的完全控制权。 $identity
变量设置为用户帐户的名称。 $fileSystemRights
变量设置为 FullControl,并且可以是指定与访问规则关联的操作类型的任一 FileSystemRights 值。 $type
变量设置为“Allow”以指定是允许还是拒绝该操作。 $fileSystemAccessRuleArgumentList
变量是创建新 FileSystemAccessRule 对象时要传递的参数列表。然后创建一个新的FileSystemAccessRule对象,并将FileSystemAccessRule对象传递给SetAccessRule()方法,添加新的访问规则。
最后一个命令使用 Set-Acl
将安全描述符应用到 Dog.txt。命令完成后,BUILTIN\Administrators 组将完全控制 Dog.txt。
参数
-AclObject
指定具有所需属性值的 ACL。 Set-Acl
更改由 Path 或 InputObject 参数指定的项目的 ACL,以匹配指定安全对象中的值。
您可以将 Get-Acl
命令的输出保存在变量中,然后使用 AclObject 参数传递该变量,或键入 Get-Acl
命令。
目的
位置:1
默认值:None
必需的:True
接受管道输入:True
接受通配符:False
-ClearCentralAccessPolicy
从指定项目中删除中央访问策略。
从 Windows Server 2012 开始,管理员可以使用 Active Directory 和组策略为用户和组设置集中访问策略。有关详细信息,请参阅动态访问控制:场景概述。
此参数是在 Windows PowerShell 3.0 中引入的。
类型 :SwitchParameter
位置:命名
默认值:False
必需的:False
接受管道输入:False
接受通配符:False
-Confirm
在运行 cmdlet 之前提示您进行确认。
类型 :SwitchParameter
别名:cf
位置:命名
默认值:False
必需的:False
接受管道输入:False
接受通配符:False
-Exclude
省略指定的项目。此参数的值限定 Path 参数。输入路径元素或模式,例如 *.txt
。允许使用通配符。
String[]
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:True
-Filter
以提供者的格式或语言指定过滤器。此参数的值限定 Path 参数。过滤器的语法(包括通配符的使用)取决于提供程序。过滤器比其他参数更有效,因为提供程序在检索对象时应用它们,而不是让 PowerShell 在检索对象后过滤对象。
类型 :String
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:True
-Include
仅更改指定的项目。此参数的值限定 Path 参数。输入路径元素或模式,例如 *.txt
。允许使用通配符。
String[]
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:True
-InputObject
更改指定对象的安全描述符。输入包含对象的变量或获取对象的命令。
您无法通过管道将要更改的对象传递给 Set-Acl
。相反,请在命令中显式使用 InputObject 参数。
此参数是在 Windows PowerShell 3.0 中引入的。
类型 :PS对象
位置:0
默认值:None
必需的:True
接受管道输入:True
接受通配符:False
-LiteralPath
更改指定项目的安全描述符。与 Path 不同,LiteralPath 参数的值完全按照键入的方式使用。没有字符被解释为通配符。如果路径包含转义字符,请将其括在单引号 ('
) 中。单引号告诉 PowerShell 不要将任何字符解释为转义序列。
此参数是在 Windows PowerShell 3.0 中引入的。
类型 :String[]
别名:PSPath
位置:命名
默认值:None
必需的:True
接受管道输入:True
接受通配符:False
-Passthru
返回一个表示已更改的安全描述符的对象。默认情况下,此 cmdlet 不生成任何输出。
类型 :SwitchParameter
位置:命名
默认值:None
必需的:False
接受管道输入:False
接受通配符:False
-Path
更改指定项目的安全描述符。输入项目的路径,例如文件或注册表项的路径。允许使用通配符。
如果将安全对象传递给 Set-Acl
(通过使用 AclObject 或 SecurityDescriptor 参数,或者通过从 Get-Acl 传递安全对象Set-Acl
),并且省略 Path 参数(名称和值),Set-Acl
使用包含在安全对象。
String[]
位置:0
默认值:None
必需的:True
接受管道输入:True
接受通配符:True
-WhatIf
显示 cmdlet 运行时会发生什么情况。该 cmdlet 未运行。
类型 :SwitchParameter
别名:wi
位置:命名
默认值:False
必需的:False
接受管道输入:False
接受通配符:False
输入
对象安全
您可以通过管道将 ACL 对象传递给此 cmdlet。
通用安全描述符
您可以通过管道将安全描述符传递给此 cmdlet。
输出
无
默认情况下,此 cmdlet 不返回任何输出。
文件安全
当您使用 PassThru 参数时,此 cmdlet 将返回一个安全对象。安全对象的类型取决于项目的类型。
笔记
此 cmdlet 仅适用于 Windows 平台。
PowerShell 文件系统和注册表提供程序支持 Set-Acl
cmdlet。因此,您可以使用它来更改文件、目录和注册表项的安全描述符。
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag