triebwerk 10 Geschrieben 4. Dezember 2014 Melden Teilen Geschrieben 4. Dezember 2014 Hallo, ich bin auf der Suche nach einem Script mit welchem ich das Änderungsdatum einer Datei auslesen und dann mit eventcreate.exe einen Event-Log Eintrag erstellen kann. Hat hier schon jemand etwas? Danke! Zitieren Link zu diesem Kommentar
zahni 554 Geschrieben 4. Dezember 2014 Melden Teilen Geschrieben 4. Dezember 2014 "Google" mal nach Powershell LastWriteTime ... Zitieren Link zu diesem Kommentar
triebwerk 10 Geschrieben 5. Dezember 2014 Autor Melden Teilen Geschrieben 5. Dezember 2014 Hallo habe schon was gefunden das genau das macht was ich brauche und habe folgendes simples script: WasFile C:\test.txt modified after today-1 if errorlevel 1 goto FALSEgoto EXIT :FALSEeventcreate /t error /id 100 /l application /d "blabla" :EXIT Wenn ich das jetzt direkt ausführe funktioniert es wunderbar, wenn ich es aber in der Aufgabenplanung hinterlege schreibt er mir den Event-Log-Eintrag immer, egal welches Ergebnis wasfile bringt. Jemand eine Idee? Danke! Zitieren Link zu diesem Kommentar
daabm 1.366 Geschrieben 5. Dezember 2014 Melden Teilen Geschrieben 5. Dezember 2014 Was bitte ist denn "WasFile" für ein Befehl? Zitieren Link zu diesem Kommentar
triebwerk 10 Geschrieben 5. Dezember 2014 Autor Melden Teilen Geschrieben 5. Dezember 2014 http://www.horstmuc.de/divd.htm Zitieren Link zu diesem Kommentar
Daniel -MSFT- 129 Geschrieben 4. Januar 2015 Melden Teilen Geschrieben 4. Januar 2015 (bearbeitet) Sprich die wasfile.exe aus http://www.horstmuc.de/wbat32d.htm mal direkt mit dem gesamten Pfad an. Ich vermute, die Datei kann nicht gefunden werden und deswegen klappt Deine Errorlevel-Abfrage nicht richtig. Auch trägst Du jetzt einen Eintrag im Eventlog ein, wenn die Datei NICHT gestern geändert wurde. Willst Du das wirklich? Eleganter geht es mit && oder !! Verknüpfung. Wenn zum Beispiel die wasfile.exe unter C:\Tools\ und die zu prüfende Datei test.txt unter C:\Check\ liegt, dann kannst Du beide Fehlerfälle so prüfen: C:\Tools\WasFile.exe C:\test.txt modified after today-1 && eventcreate /t error /id 100 /l application /d "Ergebnis: Errorlevel 0 (wahr)" C:\Tools\WasFile.exe C:\test.txt modified after today-1 !! eventcreate /t error /id 100 /l application /d "Ergebnis: Errorlevel >=1 (unwahr)" Beide Beispiele ungetestet, weil wasfile.exe nicht auf meinem Smartphone läuft. Gegenfrage an Dich: Was willst Du damit eigentlich genau erreichen? Änderungen, bei denen der Zeitstempel wieder auf den originalen Wert zurückgesetzt wird, kriegst Du damit nicht zu fassen. Hast Du mal darüber nachgedacht, die Dateiüberwachung für die Datei einzuschalten und Änderungen an der Datei protokollieren zu lassen? Dann steht automatisch im Eventlog ein Eintrag, wenn sich die Datei geändert hat: http://blogs.technet.com/b/mspfe/archive/2013/08/27/auditing-file-access-on-file-servers.aspx bearbeitet 4. Januar 2015 von Daniel -MSFT- Zitieren Link zu diesem Kommentar
daabm 1.366 Geschrieben 4. Januar 2015 Melden Teilen Geschrieben 4. Januar 2015 @Daniel: Ersetze "!!" durch "||", dann stimmt's :) Und man kann es auch in einen Aufruf packen: WasFile.exe C:\test.txt modified after today-1 && eventcreate (wahr) || eventcreate (unwahr) @triebwerk: Die Idee mit dem Suchpfad könnte stimmen - wenn Du bei einem Task kein Ausführungsverzeichnis angibst, wird %windir%\System32 verwendet. Zitieren Link zu diesem Kommentar
blub 115 Geschrieben 4. Januar 2015 Melden Teilen Geschrieben 4. Januar 2015 von Batch und externen Programmen wie was.exe kann man eigentlich nur noch abraten Arbeite dich besser in die Powershell ein: als Einstieg: $Treshhold = 1 #in days $FilePath="C:\Test.txt" $IsOlderThanThreshhold = $( $(get-date) - $(get-Item $FilePath).Lastwritetime ).Totaldays -lt $Treshhold If($IsOlderThanThreshhold){ eventcreate /t error /id 100 /l application /d "blabla" #better: http://blogs.technet.com/b/heyscriptingguy/archive/2013/06/20/how-to-use-powershell-to-write-to-event-logs.aspx } Zitieren Link zu diesem Kommentar
triebwerk 10 Geschrieben 5. Januar 2015 Autor Melden Teilen Geschrieben 5. Januar 2015 Danke vielmals, sehe mir das heute an. Gegenfrage an Dich: Was willst Du damit eigentlich genau erreichen? Änderungen, bei denen der Zeitstempel wieder auf den originalen Wert zurückgesetzt wird, kriegst Du damit nicht zu fassen. Hast Du mal darüber nachgedacht, die Dateiüberwachung für die Datei einzuschalten und Änderungen an der Datei protokollieren zu lassen? Dann steht automatisch im Eventlog ein Eintrag, wenn sich die Datei geändert hat: http://blogs.technet.com/b/mspfe/archive/2013/08/27/auditing-file-access-on-file-servers.aspx Hmm, das stimmt natürlich, wäre ja viel einfacher. Es soll nur überprüft werden ob der tägliche Export einer HV (automatisiert per Powershell) bzw. ein Backup per Robocopy funktioniert hat. Zitieren Link zu diesem Kommentar
zahni 554 Geschrieben 5. Januar 2015 Melden Teilen Geschrieben 5. Januar 2015 Was ist eine HV? Man kann hier direkt auch die Rückgabe-Codes ("Errorlevel") o.ä. der Anwendungen verarbeiten. Ein Kollege hatte mal ein kleines Powershell-Script geschrieben, dass Log-Files nach bestimmen Schlüsselwörtern durchsucht und bei Bedarf eine Mail verschickt. Zitieren Link zu diesem Kommentar
triebwerk 10 Geschrieben 5. Januar 2015 Autor Melden Teilen Geschrieben 5. Januar 2015 Sprich die wasfile.exe aus http://www.horstmuc.de/wbat32d.htm mal direkt mit dem gesamten Pfad an. Daran lag es, Danke! Aber ich sollte mich echt mal mit der Powershell befassen, das würde mir wohl einiges erleichtern. Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.