Powershell Forloop带有自定义标题

Aar*_*ron 1 powershell output

期望的输出:

Server  Data1  Data2
------  -----  -----
Server1 Stuff1 Thing1
Server2 Stuff2 Thing2
Server3 Stuff3 Thing3
Run Code Online (Sandbox Code Playgroud)

题:

我在自定义表格视图中有自定义标题的3-4个不同变量.问题是我使用ForEach并且我不确定如何将它放入表视图中.现在,我能做的最好的Write-Host "$server $stuff $thing"就是把每一个连成一排.我尝试了一些魔法,@{Expression={$_.Name};Label="Name"但没有得到任何地方.

重点是我在一天结束时有3个变量,我需要将它放入自定义表视图中.

$data = @("Server1", "Server2", "Server3")

while($true) {

    cls
    "`r"

    ForEach ($server in $data) {

        if (Test-Connection $server -count 1 -quiet) {

            net use r: \\$server\s$\Folder /user:server\administrator password >$null        
            r:

            $inputcount = (dir input -Recurse | Measure-Object).Count

            $forwardcount = (dir forward -Recurse | Measure-Object).Count
            $forwardcount = ($forwardcount-2)
            if($fowardcount -lt 0) {
                $forwardcount = 0
            }

            if($inputcount -gt 0 -or $forwardcount -gt 0) {        
                if($inputcount -gt 5000 -or $forwardcount -gt 200) {        
                    $sleepless = "1"        
                }

                Write-Host "$server" -ForegroundColor Red -NoNewline        
                Write-Host ": " -NoNewline        
                Write-Host "$inputcount" -ForegroundColor Red -NoNewline        
                Write-Host " - " -NoNewline        
                Write-Host "$forwardcount" -ForegroundColor Red        

                $inputcount = ""        
                c: >$null        
                net use r: /Delete >$null
            } else {        
                Write-Host "$server" -NoNewline        
                Write-Host ": " -NoNewline        
                Write-Host "$inputcount" -NoNewline        
                Write-Host " - " -NoNewline        
                Write-Host "$forwardcount"        

                $inputcount = ""
                c: >$null        
                net use r: /Delete >$null
            }    
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

sod*_*low 5

使用自定义对象的集合:

"Server1", "Server2", "Server3" | ForEach-Object {

    # NB: Test-Connection "host" -Count 1 sometimes fails on an online host
    if(Test-Connection $_ -Quiet -Count 2 -ErrorAction SilentlyContinue) {
        $status = "online"
    } else {
        $status = "offline"
    }

    # PowerShell v3+
    [PSCustomObject]@{    
        Server = $_
        Status = $status
        Count = 20
        What = "ever"    
    }

    # PowerShell v2
    $item = New-Object -TypeName PSObject
    $item | Add-Member -MemberType NoteProperty -Name Server -Value $_
    $item | Add-Member -MemberType NoteProperty -Name Status -Value $status
    $item | Add-Member -MemberType NoteProperty -Name Count  -Value 20
    $item | Add-Member -MemberType NoteProperty -Name What   -Value "ever"
    $item
}
Run Code Online (Sandbox Code Playgroud)

返回:

Server  Status  Count What
------  ------  ----- ----
Server1 offline    20 ever
Server1 offline    20 ever
Server2 offline    20 ever
Server2 offline    20 ever
Server3 offline    20 ever
Server3 offline    20 ever
Run Code Online (Sandbox Code Playgroud)