New-Item -Type Directory -Path "C:\MyFolder"
$Acl = Get-Acl "C:\MyFolder"
$Ar = New-Object System.Security.AccessControl.FileSystemAccessRule("username", "FullControl", "Allow")
$Acl.SetAccessRule($Ar)
Set-Acl -Path "C:\MyFolder" -AclObject $Acl嗨,当我得到上面的代码并使用我自己的设置应用它时-为文件夹添加了用户帐户条目,但没有应用权限(没有勾选)
有没有人能帮助解释为什么会这样?
谢谢
发布于 2017-03-24 19:46:10
您的评论描述了以下行为:
您的PowerShell脚本成功,但如果您使用资源管理器属性对话框检查权限,您将看到以下内容:

这非常令人困惑,因为PowerShell查询将确认:
PS> Get-Acl .|fl
Path : Microsoft.PowerShell.Core\FileSystem::D:\temp\myfolder
Owner : clijsters\clijsters
Group : clijsters\Kein
Access : clijsters\NEWUSER Allow FullControl
VORDEFINIERT\Administratoren Allow FullControl
VORDEFINIERT\Administratoren Allow 268435456
NT-AUTORITÄT\SYSTEM Allow FullControl
[...]您的ACL已更改。如果您向下滚动您的复选框列表,您将注意到,“特殊权限”已选中,如果您单击“高级”,您将注意到,您的权限已设置。
编辑:
正如@AnsgarWiechers提到的那样,我遗漏了一部分描述为什么用New-Object System.Security.AccessControl.FileSystemAccessRule("username", "FullControl", "Allow")添加的权限被列为特殊权限的原因。
就像在MSDN上描述的那样,FileSystemAccessRule有4个构造函数,其中一些接受InheritanceFlags和PropagationFlags (例如this one。如果您使用它们并定义继承行为,则权限将显示为普通权限。
发布于 2019-05-18 22:56:03
今天我试图编译ILSpy,遇到了AL1078: Error signing assembly,这是一个权限问题。显示了答案的融合。
此powershell脚本将$CurUsr分配给当前登录用户的令牌,并将$CurTgt指定为要更改其权限的文件夹。根据需要更改它们。
添加权限:
$CurTgt = "C:\Users\All Users\Microsoft\Crypto\RSA\MachineKeys"
$CurUsr = [System.Security.Principal.WindowsIdentity]::GetCurrent().Name
$acl = Get-Acl $CurTgt
$AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule($CurUsr,"FullControl","ContainerInherit,ObjectInherit","None","Allow")
$acl.SetAccessRule($AccessRule)
$acl | Set-Acl $CurTgt删除权限:
$CurTgt = "C:\Users\All Users\Microsoft\Crypto\RSA\MachineKeys"
$CurUsr = [System.Security.Principal.WindowsIdentity]::GetCurrent().Name
$acl = Get-Acl $CurTgt
$usersid = New-Object System.Security.Principal.Ntaccount ($CurUsr)
$acl.PurgeAccessRules($usersid)
$acl | Set-Acl $CurTgt参考文献:
https://stackoverflow.com/questions/42997396
复制相似问题