2016-08-02 4 views
-1

Ich habe ein Powershell-Skript, das Protokolldateien löscht, aber nicht die gesperrten. Die Dateien sind mit Notepad ++ geöffnet. Ich bin mir nicht sicher, was ich noch hinzufügen soll. Irgendwelche Vorschläge?Löschen von Protokolldateien mit Powershell

$ logpath = "C: \ Protokolle" Get-ChildItem $ logpath -recurse | Remove-Item -force

+2

"* Nicht sicher, was noch hinzuzufügen. Irgendwelche Vorschläge? *" - Erklären Sie, was Sie erreichen möchten. Fragen Sie die Person, die Notepad ++ ausführt, die Dateien zu schließen, wenn sie fertig sind, sie anzusehen? Bearbeiten Sie Ihre Serverrichtlinien nach einigen Minuten Inaktivität automatisch abzumelden? – TessellatingHeckler

+0

Sind Sie zufrieden damit, alle Änderungen zu verlieren, die jemand gemacht hat? Wer hat sie geöffnet? Warum sehen sie Logfiles? Brauchen sie die Daten von innen? Während zweifelhaft ist, hat @TesselingHeckler Recht - ist das die Route, die Sie wirklich gehen wollen? – gravity

+0

Ich würde auch vermuten, dass etwas anderes eine Sperre für die Dateien hat (z. B. das Programm, das die Protokollierung durchführt). Ich lösche Temp/Test-Dateien die ganze Zeit, die in Notepad geöffnet sind, und ich werde nie daran gehindert. Notepad ++ weist nur darauf hin, dass sie nicht mehr existieren und fragt, ob ich sie im Editor behalten möchte. –

Antwort

1

Ihre beste Wette hier wäre wahrscheinlich, die sysinternals-Anwendung handle zu verwenden, um die Prozess-ID der Datei zu erhalten, die gesperrt ist, und dann diesen Prozess zu schließen, bevor Sie mit dem Löschen fortfahren.

+0

.. keine Erwähnung, dass irgendwelche Änderungen verloren gegangen sind? Obwohl dies technisch eine Antwort ist, ist es keine gute Idee, ohne dass dieser Vorbehalt klar ist. Es ist noch nicht klar, warum der Fragesteller mit Logfiles in Notepad ++ Kontakt aufnimmt. – gravity

0

Ich konnte es zum Laufen bringen, indem ich eine Pipeline hinzufügte, um den Ordner und seinen Inhalt auszuschließen, anstatt ihn zu löschen.

Verwandte Themen