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

Se ho 2 o più risultati, ottengo $ x come matrice, ma se ho solo un risultato, ottieni $ x come oggetto. Come renderlo più corretto, per ricevere sempre array - vuoto, con un elemento o con alcuni elementi?PowerShell: Come posso forzare per ottenere un risultato come matrice invece di Oggetto

+5

Passerò il downvote questo tempo, ma dovresti cercare prima di chiedere. Questo viene risposto più volte ed è fondamentale per PowerShell = nessun sforzo di ricerca. –

+0

possibile duplicato di [Come posso forzare Powershell a restituire un array quando una chiamata restituisce solo un oggetto?] (Http://stackoverflow.com/questions/11107428/how-can-i-force-powershell-to-return- an-array-when-a-call-only-returns-one-objec) –

risposta

24

Prova $ x = @ (get-ADUser)

L'@() sintassi costringe il risultato essere un array

+0

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

+0

Ciò non comporterà una matrice contenente un array se il risultato è un array? Cosa succede se la funzione risulta '$ null'? (PowerShell è così confuso a causa di tutta la magia che fanno a volte.) – jpmc26

+0

molto approssiato! –

3

Inoltre, è possibile utilizzare $x=[array]get-aduser

Problemi correlati