powershell - 如何在 Powershell 脚本中授予目录权限
问题描述
我在 IIS 管理器中的站点上单击鼠标右键,然后选择“编辑权限”,然后单击安全选项卡。在那里,我拥有具有以下权限的用户 IUSR:读取和执行、列出文件夹内容、读取。我还可以使用命令在 Powershell 中验证这一点,该命令Get-Acl <path> |fl
显示:
访问:NT AUTHORITY\IUSR 允许 ReadAndExecute、同步
现在我完全删除了 IUSR 的 ACL 条目。我想用 Powershell 脚本设置它,使用以下几行:
$path=<path to directory>
$acl = Get-Acl "$path"
$AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule("NT AUTHORITY\IUSR","ReadAndExecute","Allow")
$acl.SetAccessRule($AccessRule)
$acl | Set-Acl "$path"
再次验证Get-Acl <path> |fl
,我显示了与预期完全相同的信息。但是在 IIS 管理器中,没有设置之前检查的权限。而是选中“特殊权限”。当我单击“高级”并从列表中选择 IUSR 时,它显示已授予相同的权限:读取和执行、列出文件夹内容、读取
但是我的网站不工作(浏览器抛出错误:HTTP-Error 401.3 - Unauthorized)。仅当我在权限窗口中手动授予这些权限时,它才有效。如何在 Powershell 脚本中正确设置所需的权限?
解决方案
将我的评论变成答案,听起来您还需要为访问规则指定 继承和传播标志,以便文件夹的子对象继承权限。
$AccessRule = [System.Security.AccessControl.FileSystemAccessRule]::new("NT AUTHORITY\IUSR", "ReadAndExecute", "ContainerInherit,ObjectInherit", "None", "Allow")
推荐阅读
- android-emulator - 设置安卓模拟器设备名称
- android - 阅读 nfc 标签时出现此错误?
- xml - 以角度将Json数据导出到特定文件夹中的XML文件
- kotlin - 没有初始值的rxjava扫描函数
- node.js - 使用 nightwatch 在无头 safari 中运行 e2e 测试
- python-3.x - 大熊猫枢轴转换 DataFrame
- ios - 如何修复“kBCOVPlaybackSessionLifecycleEventFail”
- python - 为什么我只能从 pixabay 上抓取 16 张照片?
- angular - 角材料表 - 错误:找不到列
- python - 在 Python 中延迟评估/延迟评估