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

PowerShell如何处理数组对象的未知属性?

获取Import-Excel导入对象的未知属性名称

要提取$user对象中除已知Username外的所有属性名,有两种高效实现方式:

方法1:使用Get-Member

通过Get-Member筛选属性类型,排除Username后提取属性名:

$Path = "c:\it\test.xlsx"
$Users = Import-Excel -Path $Path -WorksheetName 'Routendruck' -StartColumn 1 -StartRow 3 

foreach ($user in $Users) {
    $userSAM = $user.Username
    # 获取所有非Username的属性名数组
    $folderProperties = $user | Get-Member -MemberType NoteProperty | Where-Object { $_.Name -ne 'Username' } | Select-Object -ExpandProperty Name
    
    # 遍历属性数组获取对应权限值
    foreach ($prop in $folderProperties) {
        $permission = $user.$prop
        # 示例输出:可根据需求替换为其他处理逻辑
        Write-Host "用户 $userSAM 对文件夹 $prop 的权限:$permission"
    }
}

方法2:直接访问PSObject.Properties

通过对象的PSObject.Properties直接获取属性集合,效率比Get-Member更高:

$Path = "c:\it\test.xlsx"
$Users = Import-Excel -Path $Path -WorksheetName 'Routendruck' -StartColumn 1 -StartRow 3 

foreach ($user in $Users) {
    $userSAM = $user.Username
    # 筛选并提取非Username的属性名
    $folderProperties = $user.PSObject.Properties | Where-Object { $_.Name -ne 'Username' } | Select-Object -ExpandProperty Name
    
    # 遍历属性获取权限值
    foreach ($prop in $folderProperties) {
        $permission = $user.$prop
        # 自定义后续处理逻辑
        "$userSAM | $prop | $permission"
    }
}

两种方法最终都会得到存储所有文件夹路径属性名的数组$folderProperties,之后通过$user.$prop即可像你示例中那样获取对应权限值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 20:51:13