Вопрос: Ошибка объекта ошибки Powershell Query


Объекты ошибок Powershell содержат много данных, но я не могу отслеживать время возникновения для данной ошибки. С помощью $Error[0] | fl -f извлекает много информации, но ни один из них не является датой, когда была создана ошибка. Мне кажется, что эти данные будут / должны быть частью объекта ошибки, и я просто не могу найти точное свойство.

Я мог бы получить близкое приближение, используя блоки try / catch и время захвата, но мне нужно как можно точнее установить метку времени. Кто-нибудь знает, где / если время возникновения хранится в объекте $ Error?


6
2018-02-27 19:05


Источник


Я просто потратил полчаса, проходя через каждый объект в массиве ошибок, и не смог его найти: (Исходя из того, что он не там. - Reaces
Я представил предложение microsoft включить свойство datetime. Проголосовать windowsserver.uservoice.com/forums/301869-powershell/... - Colyn1337
Проголосовал за это, я согласен, что это, вероятно, хорошее дополнение к объекту. - Reaces


Ответы:


Насколько я знаю, нет даты, которая является частью объекта ошибки. Если вы хотите время datetime, просто добавьте Get-Date в ваш catch блок или что-то еще и добавить его в свой вывод, регистрирует любой метод вывода, который вы используете для остальной части ошибки.

Формат «o» имеет много точности и полезного формата для файлов журналов.

PS C:\users> Get-Date  -Format o
2017-02-27T11:57:31.3946789-08:00

4
2018-02-27 19:56



+1. Если выполнение является удаленным, можно сохранить все объекты журнала для возврата в arraylist. Таким образом, можно хранить несколько записей журнала, включая $ arrayobjects [x] .error и $ arrayobjects [x] .time и любые другие свойства в одном всеобъемлющем объекте для возврата (возвращать $ arrayobjects). На принимающей стороне это обрабатывается в n записей любого желаемого формата журнала. По этой причине мне нравится передавать необработанные объекты datetime, так как они настолько легко обрабатываются. - ErikE


Объекты ошибки PowerShell не содержат информацию о дате / времени.

Источник: Отчеты об ошибках Windows PowerShell

Класс InvocationInfo также не содержит этой информации.

Если вам нужны эти метаданные, вам нужно поместить их где-нибудь, когда вы catch завершающая ошибка. Тем не менее, это не поможет слишком много ошибок.

Это может помочь, если вы более подробно объясните свой вариант использования.


3
2018-02-28 16:16



Невозможно использовать -ErrorAction для регистрации временной метки для ошибок, не связанных с завершением? - SturdyErde