Lorsque vous interrogez la classe Win32_NTLogEvent de WMI avec WQL est la propriété TimeGenerated en fonction de l'heure locale de l'ordinateur ou GMT?

StackOverflow https://stackoverflow.com/questions/3063289

  •  28-09-2019
  •  | 
  •  

Question

Je suis en train d'écrire un service Windows C # qui fait un peu barattage par l'eventlog sur quelques contrôleurs de domaine. Certains d'entre eux sont Windows Server 2003 et certains sont Windows Server 2008. Sur le service d'arrêt je tente de reprendre là où je l'ai laissé dans les journaux. Pour ce faire, au lieu de

SELECT * FROM Win32_NTLogEvent WHERE --criteria for events I am looking for

Je fais

SELECT * FROM Win32_NTLogEvent WHERE TimeGenerated = --some date AND --criteria for events I am looking for

À un moment donné, je suis convaincu que le champ TimeGenerated était dans l'heure locale du serveur, mais maintenant il semble que les serveurs Windows 2008 utilisent GMT pour enregistrer ce moment-là. Quelqu'un peut-il faire la lumière sur si cela est un réel différent entre la façon dont fonctionnent les deux systèmes d'exploitation ou est-ce un problème de configuration?

Était-ce utile?

La solution

horodatage Windows sont toujours enregistrés en UTC. Ils ne seront converties en heure locale quel que soit le programme GUI que vous utilisez pour regarder les données, comme l'Observateur d'événements ou Explorer (pour les temps de fichiers). Ce comportement est important pour éviter une défaillance aléatoire sur les transitions de l'heure d'été.

Autres conseils

En outre, il semble que dans les versions antérieures à Windows Server 2008 TimeGenerated a été retourné à l'heure locale, mais a changé à GMT Server 2008, comme d'autres ont été remarqué.

Quelque chose comme cela peut être utile:

("Select * from Win32_NTLogEvent Where Logfile = 'Application' AND EventCode = '999' AND Message Like '%message%' AND TimeGenerated = '201202210000000000.000000+***'")

La syntaxe de TimeGenerated est configuré de sorte à rebours dans l'exemple ci-dessus son yearmonthdaytimeminutesseconds.000000+\*** le 000000+\*** précédent est nécessaire.

Hope this helps.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top