如何在Powershell Select-Object中使用变量选择属性

问题描述

测试1正常工作。 为什么测试2不能以相同的方式工作?

$user="bsimms"
Write-Host "test 1"
$test1out=Get-ADUser  $user -Properties * | Select-Object -Property Name,samAccountName,EmployeeID
Write-Host "test1: $test1out"
$myitems="Name,EmployeeID"

Write-Host "test 2"
$test2out=Get-ADUser  $user -Properties * | Select-Object -Property $myitems
Write-Host "test2: $test2out"

Output C:\>powershell .\file.ps1 
test 1 
test1: @{Name=Bob Simms; samAccountName=bsimms; EmployeeID=0123450} 
test 2 
test2: @{Name,EmployeeID=Microsoft.ActiveDirectory.Management.ADPropertyValueCollection}

解决方法

您必须将$myitems定义为属性名称数组。

PS > $myitems = @("Name","samAccountName","EmployeeID")
PS > Get-ADUser  $user -Properties * | Select-Object -Property $myitems