Ich bin sehr neu bei PowerShell-Skripts. Ich versuche, eine vorhandene Datei mit Datum und Uhrzeit in ihrem Dateinamen zu überschreiben.Überschreiben Sie eine vorhandene Datei mit Datum als Dateiname
Hier ist was ich benutze.
$LogName = "Security"
$EventID = 4725
$Date = ((get-date).addDays(-1))
$CurrentDate = Get-Date
$CurrentDate = $CurrentDate.ToString('MM-dd-yyyy_hh.mm.ss')
get-eventlog $LogName $EventID -after $Date | Export-CSV $Path -notypeinformation | Out-File -Filepath $Path -Append
Doch bei Betrieb, gibt es mit einem Fehler, der
Out-File sagt: Der Prozess kann nicht auf die Datei zugreifen können, weil sie von einem anderen Prozess verwendet wird
I Ich hoffe, ihr könnt mir dabei helfen. Vielen Dank!
'Out-File' wird aufgerufen, während' Export-CSV' noch läuft. Sie können dies so ändern, dass der Export beendet wird, bevor die letzte Pipe verarbeitet wird, aber "Export-CSV" schreibt die Datei bereits. Es gibt keine Notwendigkeit für Out-File ?! –
Es überschreibt die Datei nicht nur mit dem Export-CSV allein, weil ich Get-Date mit Stunden als Teil des Dateinamens verwende. – lapsantos
Nicht sicher, was du meinst und du hast uns nicht den Teil gezeigt, wo der '$ Pfad' erstellt wurde, sondern nur um zu verdeutlichen, was ich meine: Sowohl 'Export-CSV' als auch 'Out-File' schreiben an den gleichen ** Datei. Sie können 'procmon' verwenden, um dies zu überprüfen, aber wie ich bereits sagte, die 'Out-File' sieht für mich völlig überflüssig aus. –