无法将结果从Invoke-Command转换为csv类型

时间:2013-09-02 05:45:46

标签: powershell csv powershell-v2.0 export-to-csv invoke-command

将结果从Invoke-Command转换为csv类型时遇到问题。代码如下:

    $remoteResultEventLog += Invoke-Command -ScriptBlock {
Param ( [string]$EventLogName,
        [string]$EventLogEntryType,
        [DateTime]$EventLogAfter, 
        [DateTime]$EventLogBefore, 
        [string] $searchPattern, 
        [Boolean] $caseSensitive)

    $events = Get-EventLog -LogName $EventLogName -EntryType $EventLogEntryType -After $EventLogAfter -Before $EventLogBefore
    if ( $caseSensitive ) 
    { 
        $events | Select-Object Index, Time, EntryType, Source, InstanceID, Message, PSComputerName, @{Name='Search Pattern';Expression={$searchPattern}} `
        | Where-Object { Select-String -InputObject $_.message -Pattern $searchPattern -Quiet -CaseSensitive}
    }
    else 
    { 
        $events | Select-Object Index, Time, EntryType, Source, InstanceID, Message, PSComputerName, @{Name='Search Pattern';Expression={$searchPattern}} `
        | Where-Object { Select-String -InputObject $_.message -Pattern $searchPattern -Quiet }
    } 
    } -ArgumentList $EventLogName, $EventLogEntryType, $EventLogAfter, $EventLogBefore, $searchPattern, $caseSensitive -Session $serverSession

    $remoteResultEventLogCsv = $remoteResultEventLog | ConvertTo-Csv -NoTypeInformation -Delimiter ";"

最后一行给出了这个错误:

ConvertTo-Csv : Cannot bind argument to parameter 'InputObject' because it is null.

At C:\Temp\RemoteCheckTest\new\RemoteCheckFiles.ps1:131 char:65

+ $remoteResultEventLogCsv = $remoteResultEventLog | ConvertTo-Csv <<<<  -NoTypeInformation -Delimiter ";"

    + CategoryInfo          : InvalidData: (:) [ConvertTo-Csv], ParameterBindingValidationException

    + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.ConvertToCsvCommand

但是那个案例中的输入对象$remoteResultEventLog不是我检查的空值

感谢您的回答

1 个答案:

答案 0 :(得分:1)

$ remoteResultEventLog的内容是什么?也许您可以尝试用以下代码替换脚本中的最后一行:

$remoteResultEventLogCsv = $remoteResultEventLog | Where-Object {$_} | ConvertTo-Csv -NoTypeInformation -Delimiter ";"
相关问题