Question Query Powershell Error Object Time est survenu


Les objets d'erreur Powershell contiennent beaucoup de données, mais je n'arrive pas à retrouver le moment de l'occurrence d'une erreur donnée. En utilisant $Error[0] | fl -f récupère beaucoup d'informations mais aucune ne semble être une date-heure à laquelle l'erreur a été générée. Il me semble que ces données feraient / devraient faire partie de l’objet d’erreur et que je ne parviens tout simplement pas à trouver la propriété exacte.

Je pourrais obtenir une approximation proche en utilisant des blocs try / catch et en saisissant l'heure, mais j'ai besoin d'un horodatage aussi précis que possible. Quelqu'un sait où / si l'heure d'occurrence est stockée dans l'objet $ Error?


6
2018-02-27 19:05


origine


Je viens de passer une demi-heure à parcourir chaque objet du tableau d’erreurs et j’ai été incapable de le trouver :( Commencer à penser que ce n’est pas là. - Reaces
J'ai soumis la suggestion à Microsoft d'inclure une propriété datetime. S'il vous plait, votez windowsserver.uservoice.com/forums/301869-powershell/… - Colyn1337
Voté pour cela, je conviens que c'est probablement un bon ajout rapide à l'objet. - Reaces


Réponses:


Autant que je sache, il n'y a pas de date-heure faisant partie de l'objet d'erreur. Si vous voulez le datetime, ajoutez juste un Get-Date Dans votre catch block ou quoi que ce soit et l'ajoutez à votre sortie, enregistre la méthode de sortie que vous utilisez pour le reste de l'erreur.

Le format "o" offre une grande précision et un format utile pour les fichiers journaux.

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

4
2018-02-27 19:56



+1 Si l'exécution est distante, vous pouvez stocker tous les objets de journal à renvoyer dans une liste. Ainsi, il est possible de stocker plusieurs entrées de journal, y compris $ arrayobjects [x] .error et $ arrayobjects [x] .time, ainsi que d’autres propriétés d’un objet complet à renvoyer ($ arrayobjects). A la réception, cela est traité en n entrées du format de journal souhaité. Pour cette raison, j'aime bien passer des objets DateHeure bruts, car ils sont si faciles à post-traiter. - ErikE


Les objets d'erreur PowerShell ne contiennent pas d'informations de date / heure.

La source: Enregistrements d'erreur Windows PowerShell

le Classe InvocationInfo ne contient pas cette information non plus.

Si vous voulez ces métadonnées, vous aurez besoin de les mettre quelque part quand vous catch une erreur de terminaison. Cela ne va pas aider beaucoup avec des erreurs non-terminantes, cependant.

Cela pourrait être utile si vous expliquiez plus en détail votre cas d'utilisation.


3
2018-02-28 16:16



-ErrorAction ne pourrait-il pas être utilisé pour consigner un horodatage pour les erreurs non terminantes? - SturdyErde