Я написал следующий пример сценария, который позволяет мне собирать информацию для всех серверов в среде. Однако у меня нет доступа ко всем серверам, и иногда я получаю сообщение об ошибке, которое хочу перехватить и сохранить в файле 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 char: 26 + $ Ошибка [0] .Exception | Export-csv -Append. \ Resulttest.csv + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo: InvalidData : (CSName: String) [Export-Csv], InvalidOperationException + FullyQual
Есть идеи о том, как go обойти это?