Search code examples
powershellselect-object

How do I select properties with a variable in Powershell Select-Object


Test 1 works as expected. Why doesn't Test 2 work the same way?

$user="bsimms"
Write-Host "test 1"
$test1out=Get-ADUser  $user -Properties * | Select-Object -Property Name, samAccountName, EmployeeID
Write-Host "test1: $test1out"
$myitems="Name, samAccountName, 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, samAccountName, EmployeeID=Microsoft.ActiveDirectory.Management.ADPropertyValueCollection}

Solution

  • You must define $myitems as an array of property names.

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