Powershell 动态获取aduser-输出特定属性

Powershell 动态获取aduser-输出特定属性,powershell,Powershell,应将某些指定的属性写入shell。硬编码解决方案是每个属性一行: echo (get-aduser $user -property name).name 产出: Name.User 但我需要一些动力。为什么它不适用于变量: $attr=("name","CanonicalName") for($i=0;$i -lt $arr.length;$i++){ echo (get-aduser $user -property $attr[$i]).$a

应将某些指定的属性写入shell。硬编码解决方案是每个属性一行:

echo (get-aduser $user -property name).name
产出:

Name.User
但我需要一些动力。为什么它不适用于变量:

$attr=("name","CanonicalName")
for($i=0;$i -lt $arr.length;$i++){
    echo (get-aduser $user -property $attr[$i]).$attr[$i]
}

我只需要输出属性数组中包含的属性。我以前从未使用过posh,并且在这上面坐了好几天,并且对任何其他方式都持开放态度,以获取请求属性的列表。

在预指定表达式解析之前,最后的
[]
索引运算符不会应用:

(get-aduser $user -property $attr[$i]).$attr[$i]
# is evaluated as
((get-aduser $user -property $attr[$i]).$attr)[$i]
将其更改为:

(get-aduser $user -property $attr[$i]).($attr[$i])
# or 
(get-aduser $user -property $attr[$i])."$($attr[$i])"