PowerShell get-acl 列出文件夹内容与 ReadAndExecute

2024-02-19

这是一个简单的问题,但我在谷歌或这里还找不到答案:

通过使用 PowerShell 或 cmd(无第三方工具),如何以允许我区分“列出文件夹内容”和“ReadAndExecute”的方式检索文件夹权限?

现在,当我在文件夹上执行 Get-Acl 时,当组仅授予列表访问权限或读取和执行权限时,它会返回相同的权限级别。如果我右键单击并转到“安全”选项卡,一组会选中“列出文件夹内容”,另一组会选中“读取和执行”,但两者都会使用 Get-Acl 返回“ReadAndExecute”。

图片如下:

Powershell 只返回“ReadAndExecute”:

文件系统权限:读取并执行、同步

访问控制类型:允许

身份参考:group1

是否继承:False

继承标志:ContainerInherit、ObjectInherit

传播标志:无


文件系统权限:读取并执行、同步

访问控制类型:允许

身份参考:group2

是否继承:False

继承标志:ContainerInherit

传播标志:无


一段时间后,我自己找到了一个可行的解决方案。

尽管 PowerShell(或 CMD 或 C#)始终为 ListDirectory 或实际 ReadAndExecute 权限返回“ReadAndExecute”,但仅当权限为“ListDirectory”时,“InheritanceFlag”将始终为“ContainerInherit”。因此,检查此标志,您可能会发现哪个组仅授予列表权限而不是读取和执行权限。

我已经在 PowerShell 中实现了此检查,到目前为止,它适用于所有测试用例:

foreach($access in (Get-Acl 'C:\test').Access) {
    $filerights = $access.FileSystemRights.ToString();
    $inheritanceFlg = $access.InheritanceFlags.ToString();
    if($inheritanceFlg -eq 'ContainerInherit') {
        $filerights = $filerights.replace('ReadAndExecute','ListDirectory');
    }
    $output = $access.IdentityReference.ToString() + ';' + $filerights;
    $output
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PowerShell get-acl 列出文件夹内容与 ReadAndExecute 的相关文章

  • 如何修改此 PowerShell 脚本以将目录名称更改为更低?

    我试图将所有文件和目录重命名为 lower 我在这里找到了一个 powershell 脚本 在 Powershell 中将文件重命名为小写 https stackoverflow com questions 3822745 rename f
  • 使用powershell自动打印html文件

    我想使用 powershell 将 html 文件打印到默认打印机 假设我有文件 c test html 其中包含以下文本 p hello b world b p 如何将 test html 打印到默认打印机 先感谢您 get conten
  • 获取以 UTC 表示的当前时间的最简单 PowerShell 方法

    我已查看该帖子在 PowerShell 中创建具有特定 UTC 日期时间的 DateTime 对象 https stackoverflow com questions 10487011 creating a datetime object
  • 是否可以在不使用清单的情况下设置 Powershell 模块名称/版本?

    我可以看到 如果没有清单 默认模块名称将设置为 psm1 文件名 但是有没有办法在模块代码中设置它 我也想在代码中设置版本 如果您要导入二进制模块 则将从程序集元数据中提取模块版本 然而 该名称只是 DLL 的文件名 对于脚本模块 psm1
  • Powershell脚本运行缓慢

    我正在编写一个脚本来检查大约 15 个远程服务器上的版本 但该脚本的执行时间比我预期的要长得多 listServers compName1 compName2 compName3 compName15 Out File C temp jav
  • 使用 Powershell 关闭 Excel 应用程序

    我正在从 powershell 启动工作簿中的宏 以自动化流程 下面在 powershell 中打开 Excel 工作簿并运行宏 而不可视化该过程 问题是 即使我没有看到宏运行 从宏生成的新 excel 实例仍然打开 start Excel
  • 为路径创建别名

    是否可以在 PowerShell 中为路径创建别名 例如 我必须一直写下去 PS PS C Users Jacek gt cd C windows microsoft net framework v4 0 30319 如果我能写我会很高兴
  • 转储 $mft 文件的内容

    对于一些商业的我正在做的项目我需要能够读取 mft 文件中存储的实际数据 我找到了一个gpl lib http www codeproject com KB files NTFSParseLib aspx artkw ntfs这可能会有所帮
  • 如何卸载其他用户安装的应用程序?

    当我尝试调试 Windows 8 应用程序并且另一个用户帐户上已安装了一个副本时 我不断遇到此问题 DEP0700 应用程序注册失败 另一个用户已经安装了此应用程序的打包版本 未打包的版本无法替代它 冲突的包是 PackageName 由
  • IIS7 权限概述 - ApplicationPoolIdentity

    我们最近升级到 IIS7 作为核心 Web 服务器 我需要一个权限方面的概述 以前 当需要写入文件系统时 我会授予 AppPool 用户 网络服务 对目录或文件的访问权限 在 IIS7 中 我看到默认情况下 AppPool 用户设置为App
  • Powershell调用cmd.exe命令,如copy /b

    我已经看到这个了在 Powershell 中快速且简单地连接二进制文件 https stackoverflow com questions 1783554 fast and simple binary concatenate files i
  • 从 R 运行 powershell 命令:表达式或语句中出现意外标记

    我尝试了以下命令 在 powershell 窗口中有效 system powershell command Get ChildItem Filter html Where Object LastWriteTime ge 11 12 2021
  • TFS:在服务器重新启动或 Windows 更新安装时触发构建的最佳方式

    简而言之 要求是验证我们最新发布的软件是否可以在应用最新的 Windows 更新和 或其他补丁后构建并安装 因此 构建服务器虚拟机将专门为此目的进行配置 并且构建仅需要在更新后运行 由于此类更新通常会重新启动 因此我正在考虑触发构建和部署的
  • 将 .cer 格式的证书添加到 .bks 密钥库中

    我需要将 cer 格式的证书添加到 BKS 密钥存储中 SO 上对此进行了描述 如何将 cer 转换为 BKS https stackoverflow com questions 21284466 how to convert cer to
  • PowerShell Try、Catch、自定义终止错误消息

    有没有办法自定义终止错误的错误消息 在下面的例子中我只想得到一个Try部分并将所有错误收集在一个中Catch通过组合两个脚本块来部分 我的问题是 error产生于Import csv描述性不够 我想要文字Failed CSV File im
  • 当请求太大时,Nginx(我认为)会以错误的权限保存文件

    所以 我对托管和 Linux 等都是完全陌生的 所以如果我说错了 请原谅我 我还在学习 我正在使用 Django 创建一个小型个人网站 我想把它放到网上看看是否一切正常 我从 linode 买了一台便宜的服务器 并使用 Digital Oc
  • 我的小程序需要客户端访问资源的权限的策略文件位置在哪里?

    我发现我必须编写一个策略文件来授予我的小程序权限 但我真的很困惑 我想编写一个小程序 它是一个地图查看器 我需要在运行我的小程序的客户端上保存图像图块以在本地访问图块 以获得安全地查看地图的速度和时间 这对用户有利 因此 小程序需要授予读
  • 在 PowerShell 中通过 UDP 发送和接收数据

    我正在尝试编写一个脚本来使用 PowerShell 进行测试和应用 测试应包括通过 UDP 向远程服务器发送字符串 然后读取该服务器的响应并对结果执行某些操作 我需要的唯一帮助是脚本的中间两个步骤 发送字符串 然后 接收响应 在端口 UDP
  • PowerShell 中一个命令中的多个前景色

    我想用一个语句输出许多不同的前景色 PS C gt Write Host Red ForegroundColor Red Red 该输出为红色 PS C gt Write Host Blue ForegroundColor Blue Blu
  • 更新通过 JungleDisk 上传的 Amazon S3 文件的权限

    我开始使用 Jungle Disk 将文件上传到与 Cloudfront 发行版相对应的 Amazon S3 存储桶 即我可以通过 http URL 访问它 并且我使用 Amazon 作为 CDN 我面临的问题是 Jungle Disk 没

随机推荐