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

如何将Get-NTFSAccess输出的Applies to列值读取到变量中?

解决Get-NTFSAccess读取"Applies to"列失败的问题

问题原因

Get-NTFSAccess返回的对象中,显示的列名"Applies to"是友好显示名称,并非对象的实际属性名,直接用该名称读取自然无法获取值。

解决步骤

  1. 确认实际属性名
    运行以下命令,查看返回对象的所有属性:
$acl | Get-Member -MemberType Property

在输出中,你会发现对应"Applies to"列的实际属性名为AccessScope(这是NTFSSecurity模块中FileSystemAccessRule2对象的标准属性)。

也可以直接查看单个对象的所有属性值,进一步验证:

$acl[0] | Select-Object *
  1. 修改代码中的属性引用
    将原代码里的$record."Applies to"替换为实际属性名$record.AccessScope,修改后的完整代码如下:
$Object = "C:\temp\testfolder"
$acl    = Get-NTFSAccess -Path $Object
$results = @() # 初始化结果数组,避免未定义报错

foreach ($record in $acl) {
    $result = [PSCustomObject]@{
        FilePath      = $Object
        Principal     = $record.Account
        Type          = $record.AccessControlType
        Access        = $record.AccessRights
        Inherited     = $record.IsInherited
        InheritedFrom = $record.InheritedFrom
        Scope         = $record.AccessScope
    }
    $results += $result
}

额外提示

如果后续遇到类似属性读取失败的情况,都可以通过Get-Member或Select-Object *来确认对象的真实属性名,避免被友好显示名称误导。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 02:49:51