Объект PowerShell не работает должным образом

Я попытался использовать командлет sort-object для сортировки процессов по идентификаторам здесь:

Get-Process | Sort-Object -Property Id

и это работает хорошо. В любом другом примере, который я обнаружил, сортировка работает нормально, но когда я пытаюсь отсортировать сотрудников по их employeeID из Active Directory с помощью одной строки:

Get-QADUser -IncludeAllProperties -SerializeValues | ? {?_.Mail} | select employeeID | sort-object -property employeeID

Я получаю что-то вроде этого:

11
1104
1105
1185
119
12...

2 ответа

Решение

Get-QADUser возвращает eployeeId в виде строки, поэтому сортировка использует механизм сортировки строк. Чтобы отсортировать employeeIds как целые числа - просто приведите свойство к этому типу:

Get-QADUser -IncludeAllProperties | Sort-Object { [int]$_.employeeId } | select Name, employeeid 

Также вы можете использовать {$_. EmployeeId -as [int]}. Это не вызывает ошибку в нуле.

Я принимаю это решение с "Frode F."

Другие вопросы по тегам