You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell中如何筛选Get-Acl | Format-List输出里含BUILTIN的行?

解决PowerShell中Get-Acl结合筛选字符串的问题

问题原因

Format-List输出的是PowerShell的格式化显示对象,并非纯文本流,因此Select-String(别名sls)无法直接识别其中的文本内容,导致你之前的命令没有返回结果。

两种可行解决方案

方案1:直接操作ACL对象属性(推荐)

直接提取Get-Acl返回对象的Access属性,筛选其中身份引用包含BUILTIN的访问控制条目(ACE):

(Get-Acl C:).Access | Where-Object { $_.IdentityReference -like "*BUILTIN*" }

如果需要和Format-List一致的格式化输出,可追加Format-List:

(Get-Acl C:).Access | Where-Object { $_.IdentityReference -like "*BUILTIN*" } | Format-List

这种方式直接操作对象属性,效率更高,也便于后续对筛选结果进行自动化处理。

方案2:转换为文本流后筛选

如果需要基于格式化后的显示文本进行筛选,需用Out-String -Stream将格式化输出转换为逐行文本流,再用Select-String匹配:

Get-Acl C: | Format-List | Out-String -Stream | Select-String "BUILTIN"

Out-String -Stream会将Format-List的输出拆分成独立的文本行,让Select-String能够正常匹配目标内容。

内容的提问来源于stack exchange,提问作者user1443098

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 05:32:36