使用ping输出创建CSV

时间:2016-11-08 09:03:37

标签: function powershell csv ping

我已编写以下代码使用ping命令ping多台计算机,我想捕获以下值:

  1. 来自/请求的回复等等。
  2. 远程主机的实际IP地址
  3. 此功能正常工作,但是,如果我尝试将其返回值设为CSV,则无法执行此操作。

    # Declaration of the function name and expected parameters
    Function Ping-Check{
    [cmdletbinding()]
    PARAM (
    [Parameter(Mandatory=$True,
        ValueFromPipeline=$True,
        ValueFromPipelineByPropertyName=$True,
        HelpMessage='Enter the name of the remote host.')]
    [String]$ObjCompName
    )
    Begin{
    # Setup the Process startup info
    $pinfo = New-Object System.Diagnostics.ProcessStartInfo
    $pinfo.FileName = "ping.exe"
    $pinfo.Arguments = " -a " + $ObjCompName + " -n 2"
    $pinfo.UseShellExecute = $false
    $pinfo.CreateNoWindow = $true
    $pinfo.RedirectStandardOutput = $true
    $pinfo.RedirectStandardError = $true
    }
    Process{
    $p = New-Object System.Diagnostics.Process
    $p.StartInfo = $pinfo
    $p.Start() | Out-Null
    $p.WaitForExit()
    # Redirect the Output
    $stdout = $p.StandardOutput.ReadToEnd()
    $stderr = $p.StandardError.ReadToEnd()
    }
    End{
    Write-Output "stdout: $stdout"
    Write-Output "stderr: $stderr"
    Write-Output "exit code: " + $p.ExitCode
    }
    }
    

1 个答案:

答案 0 :(得分:0)

Test-Connection中有一个 cmdlet,它返回一个包含您可以使用的属性的对象数组。如果您不想坚持尝试,请注意您必须自己解析输出。