2017-03-08 1 views
0

Output of format table
J'essaie d'utiliser un objet PSCustomObject pour stocker un tas d'informations à partir d'un ordinateur distant. Je n'arrive pas à obtenir la sortie de Format-Table pour fonctionner comme je le veux.Format-Table ouputting Liste de pscustomobject entre accolades

Comme le montre l'image, la liste des éléments de l'objet PSCustom s'affiche à l'intérieur des accolades plutôt qu'en tant que liste sous l'en-tête de la colonne.

Voici le code que j'utilise pour générer le test PSCustomObject et remplir l'une des propriétés.

$EnvironmentInfo = [PSCustomObject] @{Name=[System.Collections.ArrayList]@(); Description=[System.Collections.ArrayList]@(); Publisher=[System.Collections.ArrayList]@(); Doggo=[System.Collections.ArrayList]@()} 

$EnvironmentInfo.Name.Add("Doggo") 
$EnvironmentInfo.Name.Add("Doggo") 
$EnvironmentInfo.Name.Add("Doggo") 
$EnvironmentInfo.Name.Add("Doggo") 
$EnvironmentInfo.Name.Add("Doggo") 
$EnvironmentInfo.Name.Add("Doggo") 
$EnvironmentInfo.Name.Add("Doggo") 
$EnvironmentInfo.Name.Add("Doggo") 
$EnvironmentInfo.Name.Add("Doggo") 

$EnvironmentInfo | Format-Table -Property $_ 
+1

Pourquoi vous le faites de cette façon au lieu de '$ EnvironmentInfo = @ ([PSCustomObject] @ {Name = 'Nom 1'; Description = 'Description 1'; Editeur = « Editeur 1 '; Doggo =' Doggo 1 '}; [PSCustomObject] @ {Nom =' Nom 2 '; Description =' Description 2 '; Éditeur =' Éditeur 2 '; Doggo =' Doggo 2 '}) '? – PetSerAl

+0

S'il vous plaît montrer votre sortie désirée. –

+0

@PetSerAl Je pense que je pourrais en quelque sorte canaliser Get-Hotfix dans un tableau de pscustomobject, ne me semble pas juste – Fullmetal99012

Répondre

0

Votre question est plutôt brève et laisse beaucoup à l'imagination. Cependant, il semble que vous souhaitiez rassembler un ensemble d'informations provenant de plusieurs sources et les combiner afin de produire une sortie parfaitement formatée. Je peux fournir un exemple qui peut (ou non) vous aider. L'exemple recueille des informations HotFix (par @PetSerAI) à partir de plusieurs machines et renvoie un objet pour chaque correctif qui est canalisé dans une table Format.

<# 
.Synopsis 
    Gather HotFix Info 
.DESCRIPTION 
    Gather HotFix Info from one or more computers 
.EXAMPLE 
    @("LCFSQL01","LCFSQL02","LCFSQL03","LCFSQL05") | Gather-HotFixInfo 
    Gathers info for several remote machines 
.EXAMPLE 
    Gather-HotFixInfo -Machine = "LCFSQL01" 
    Gathers info for a single remote machine 
#> 
Function Gather-HotFixInfo 
{ 
    [CmdletBinding()] 
    Param 
    (
     # Machine remote machine name 
     [Parameter(Mandatory=$true, 
        ValueFromPipeline=$true, 
        Position=0)] 
     [string]$Machine 
    ) 
    Process 
    { 
     Try 
     { 
      Get-HotFix -ComputerName $machine | ForEach-Object { 
       [pscustomobject]@{Name=$_.CSName; 
        Description=$_.Description; 
        HotFixID=$_.HotFixID; 
        Doggo="Doggo"} 
      }  
     } 
     Catch 
     { 
      Write-Warning "Could not connect to $machine" 
     }   
    } 
} 

# List of all computers from which to gather info 
@("LCFSQL01","LCFSQL02","LCFSQL03","LCFSQL05") | Gather-HotFixInfo | Format-Table 

Formatted Output