Logdateien mit Powershell erstellen
Hallo Forengemeinde,
ich habe ein funktionierendes PS-Script, aber mit der LogFile-Erstellung bin ich nicht so zufrieden.
Wer kann mir bitte weiterhelfen, wie ich dem Script mitteilen kann, dass ich
- alle gelöschten Dateien, Ordner
aufgelistet bekomme
Für Eure Hilfe im Voraus besten Dank.
ich habe ein funktionierendes PS-Script, aber mit der LogFile-Erstellung bin ich nicht so zufrieden.
# Dieses Skript loescht mir alle Dateien auf Laufwerk Z, die aelter als 90 Tage sind.
$Path = "Z:\archiv\test"
$Daysback = "-90"
$LogFile = "C:\temp\online.txt"
$CurrentDate = Get-Date
$DatetoDelete = $CurrentDate.AddDays($Daysback)
start-transcript "$LogFile $(get-date -format yyyy_MM_dd).txt"
Get-ChildItem $Path -Recurse | Where-Object { $_.LastWriteTime -lt $DatetoDelete } | Remove-Item
stop-transcript
Wer kann mir bitte weiterhelfen, wie ich dem Script mitteilen kann, dass ich
- alle gelöschten Dateien, Ordner
aufgelistet bekomme
Für Eure Hilfe im Voraus besten Dank.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 650819
Url: https://administrator.de/contentid/650819
Ausgedruckt am: 05.11.2024 um 17:11 Uhr
8 Kommentare
Neuester Kommentar
Moin,
Da kommst Du mit start-transscript so nicht weiter, weil das nur das logt, was auch auf der Konsole steht bzw. stehen würde. Bei Deinem Konstrukt steht da bei Erfolg aber nichts. Das wäre eine Lösung (statt Zeile 10):
hth
Erik
Zitat von @newbie1:
ich habe ein funktionierendes PS-Script, aber mit der LogFile-Erstellung bin ich nicht so zufrieden.
[...]
Wer kann mir bitte weiterhelfen, wie ich dem Script mitteilen kann, dass ich
- alle gelöschten Dateien, Ordner
aufgelistet bekomme
ich habe ein funktionierendes PS-Script, aber mit der LogFile-Erstellung bin ich nicht so zufrieden.
[...]
Wer kann mir bitte weiterhelfen, wie ich dem Script mitteilen kann, dass ich
- alle gelöschten Dateien, Ordner
aufgelistet bekomme
Da kommst Du mit start-transscript so nicht weiter, weil das nur das logt, was auch auf der Konsole steht bzw. stehen würde. Bei Deinem Konstrukt steht da bei Erfolg aber nichts. Das wäre eine Lösung (statt Zeile 10):
$files = Get-ChildItem $Path -Recurse | Where-Object { $_.LastWriteTime -lt $DatetoDelete }
foreach($file in $files) {
try {
remove $file -ErrorAction Continue
Write-Output "$file.fullname wurde gelöscht."
}
catch {
Write-Error "$file.fullname wurde nicht gelöscht!"
}
}
hth
Erik
Moin,
ich bin immer der Ansicht: Man muss das Rad nicht immer neu erfinden. Deshalb hier mal ein fertiges PowerShell-Modul, dass dir das Logging übernimmt:
https://www.powershellgallery.com/packages/Logging/4.8.0
musst du natürlich entsprechend einbinden.
Viele Grüße
Daemmerung
ich bin immer der Ansicht: Man muss das Rad nicht immer neu erfinden. Deshalb hier mal ein fertiges PowerShell-Modul, dass dir das Logging übernimmt:
https://www.powershellgallery.com/packages/Logging/4.8.0
musst du natürlich entsprechend einbinden.
Viele Grüße
Daemmerung
Moin,
Woher soll ich das wissen, wenn Du weder Fehlermeldungen noch Code postest?
Liebe Grüße
Erik
Zitat von @newbie1:
Habe es in meinem Script eingebunden, aber es hat nichts geloggt.
Was habe ich da falsch gemacht?
Habe es in meinem Script eingebunden, aber es hat nichts geloggt.
Was habe ich da falsch gemacht?
Woher soll ich das wissen, wenn Du weder Fehlermeldungen noch Code postest?
Liebe Grüße
Erik
Moin,
läuft hier wie Schmitz' Katze. Allerdings finde ich den Dateinamen, in den Du schreiben willst, etwas komisch.
hth
Erik
$files = Get-ChildItem c:\test\transkript -Recurse -File
start-transcript "c:\test\transcript_test.txt"
foreach($file in $files) {
try {
remove-item $file.FullName -ErrorAction Continue
Write-Output "$($file.fullname) wurde gelöscht."
}
catch {
Write-Error "$($file.fullname) wurde nicht gelöscht!"
}
}
stop-transcript
läuft hier wie Schmitz' Katze. Allerdings finde ich den Dateinamen, in den Du schreiben willst, etwas komisch.
hth
Erik