【发布时间】:2020-06-28 10:27:45
【问题描述】:
我编写了以下示例脚本,可让我收集环境中所有服务器的信息。但是,我无法访问所有服务器,有时我会收到想要捕获并存储在 result.csv 文件中的错误。
$Servers = Get-Content .\servers.txt
foreach ($Server in $Servers){
try {
Get-CimInstance Win32_OperatingSystem -ComputerName $server -ErrorAction Stop | Select-Object CSName, Caption, Version, OSArchitecture, InstallDate, LastBootUpTime | Export-Csv -append .\result.csv
} catch {
$Error[0].Exception | Export-csv -Append .\resulttest.csv
}
}
通常脚本可以工作,但是当我尝试保存错误时,我收到消息:
Export-csv:无法将 CSV 内容附加到以下文件: .\resulttest.csv。附加对象没有属性 对应于以下列:CSName。继续 不匹配的属性,添加 -Force 开关并重试。在 C:\temp\script\serverdata.ps1:10 字符:26 + $Error[0].异常 |导出-csv -追加 .\resulttest.csv + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidData: (CSName:String) [Export-Csv], InvalidOperationException + 完全质量
关于如何解决这个问题的任何想法?
【问题讨论】:
-
您可能想看看this。要么使用两个 CSV,一个输出成功结果,另一个输出失败结果,或者使用PowerShell calculated property,如示例所示。
标签: powershell csv export-to-csv