2012-12-29 18 views
19
$result = Get-ADUser -Filter $filter 

Jeśli mam 2 lub więcej wyników, otrzymuję $ x jako tablicę, ale jeśli mam tylko jeden wynik, otrzymam $ x jako obiekt. Jak sprawić, by było bardziej poprawne, aby zawsze otrzymywać tablice - puste, z jednym elementem lub z niektórymi elementami?PowerShell: Jak mogę wymusić otrzymanie wyniku jako Array zamiast Object

+5

Wpadnę do downvote to czas, ale powinieneś szukać przed pytaniem. Odpowiedzi są udzielane wiele razy i jest to podstawa PowerShell = bez wysiłku badawczego. –

+0

możliwy duplikat [Jak zmusić Powershell do zwrócenia tablicy, gdy połączenie zwraca tylko jeden obiekt?] (Http://stackoverflow.com/questions/11107428/how-can-can-i-cece-powershell-to-return- an-array-when-a-call-only-returns-one-objec) –

Odpowiedz

24

Spróbuj $ x = @ (get-aduser)

@() składnia wymusza rezultat być tablicą

+0

Dziękujemy! #######> a1 = Get-WMIObject Win32_OperatingSystem; Write-Host ($ a1.GetType()). BaseType; $ a2 = @ (Get-WMIOb ject Win32_OperatingSystem); Write-Host ($ a2.GetType()). BaseType; Write-Host ($ a2 [0] .GetType()). BaseType; ######### System.Management.ManagementBaseObject System.Array System.Management.ManagementBaseObject – filimonic

+0

Nie spowoduje to tablicy zawierającej tablicę, jeśli wynikiem jest tablica? Co się stanie, jeśli funkcja uzyska '$ null'? (PowerShell jest tak zagmatwany ze względu na całą magię, którą czasami robią.) – jpmc26

+0

bardzo doceniany! –

3

Ponadto, można użyć $x=[array]get-aduser

Powiązane problemy