0

格式表的输出
我正在尝试使用 PSCustomObject 来存储来自远程计算机的一堆信息。我似乎无法让 Format-Table 的输出按照我想要的方式工作。

如图所示,PSCustom 对象中的项目列表显示在大括号内,而不是列标题下的列表。

下面是我用来生成测试 PSCustomObject 并填充其中一个属性的代码。

$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 $_
4

1 回答 1

1

你的问题相当简短,留下了很多想象空间。但是,您似乎想从多个来源收集一系列信息并将其组合起来以生成格式整齐的输出。我可以提供一个可能(或可能不会)帮助你的例子。该示例从多台机器收集 HotFix 信息(每个 @PetSerAI),并为每个通过管道传输到 Format-Table 的修补程序返回一个对象。

<#
.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

格式化输出

于 2017-03-10T15:06:06.427 回答