Powershell Ausgabe von Get-Childitem Where-Object incl. Dateipfad?
Hallo,
ich such mir grade ein Powershell Script für eine Serverdatensicherung zusammen.
Klappt soweit auch ganz gut, allerdings hab ich da nen hänger und komm nicht weiter.
Ich möchte die zuletzt erstellte ntbackup .log Datei per Email verschicken.
$backuplog = Get-ChildItem "C:\Dokumente und Einstellungen\Benutzername\Lokale Einstellungen\Anwendungsdaten\Microsoft\Windows NT\NTBackup\data" | Where-Object {$_.LastWriteTime -gt (Get-Date).AddMinutes(-45)}
In die Variable $Backuplog wird leider nur der Dateiname geschrieben, sodass eine spätere Übergabe der Variable mangels Pfadangabe nicht funktioniert.
$Att = new-object Net.Mail.Attachment($backuplog)
.
.
.
$Mail.Attachments.Add($Att)
Die Ausgabe des Scripts meldet dann Fehler:
New-Object : Ausnahme beim Aufrufen von ".ctor" mit 1 Argument(en): "Die Datei
"C:\Dokumente und Einstellungen\Benutzername\backup08.log" konnte nicht gefunden werden."
Es wird also nur der Dateiname in die Variable geschrieben.. ist ja logisch... aber leider fehlen mir die PS Kenntnisse um dies zu ändern.
Für eine Korrektur der Minutenwerte in "zuletzt geschriebene Datei" bin ich auch dankbar, da ich ja nur die letzte brauche und das mit den Minuten halt auch funktioniert aber bestimmt nicht best practice ist.
Für Programmierer ist dies bestimmt kein Problem, für mich als Script Laien jedoch schon.
Thx im voraus!
ich such mir grade ein Powershell Script für eine Serverdatensicherung zusammen.
Klappt soweit auch ganz gut, allerdings hab ich da nen hänger und komm nicht weiter.
Ich möchte die zuletzt erstellte ntbackup .log Datei per Email verschicken.
$backuplog = Get-ChildItem "C:\Dokumente und Einstellungen\Benutzername\Lokale Einstellungen\Anwendungsdaten\Microsoft\Windows NT\NTBackup\data" | Where-Object {$_.LastWriteTime -gt (Get-Date).AddMinutes(-45)}
In die Variable $Backuplog wird leider nur der Dateiname geschrieben, sodass eine spätere Übergabe der Variable mangels Pfadangabe nicht funktioniert.
$Att = new-object Net.Mail.Attachment($backuplog)
.
.
.
$Mail.Attachments.Add($Att)
Die Ausgabe des Scripts meldet dann Fehler:
New-Object : Ausnahme beim Aufrufen von ".ctor" mit 1 Argument(en): "Die Datei
"C:\Dokumente und Einstellungen\Benutzername\backup08.log" konnte nicht gefunden werden."
Es wird also nur der Dateiname in die Variable geschrieben.. ist ja logisch... aber leider fehlen mir die PS Kenntnisse um dies zu ändern.
Für eine Korrektur der Minutenwerte in "zuletzt geschriebene Datei" bin ich auch dankbar, da ich ja nur die letzte brauche und das mit den Minuten halt auch funktioniert aber bestimmt nicht best practice ist.
Für Programmierer ist dies bestimmt kein Problem, für mich als Script Laien jedoch schon.
Thx im voraus!
Please also mark the comments that contributed to the solution of the article
Content-Key: 179228
Url: https://administrator.de/contentid/179228
Printed on: April 24, 2024 at 10:04 o'clock
5 Comments
Latest comment
Moin Moin
Wenn du den Pfad kennst schreib ihn doch auch in eine variable. Etwa so
Das ganze ist natürlich ungetestet.
Gruß L.
Wenn du den Pfad kennst schreib ihn doch auch in eine variable. Etwa so
$backuppath = "C:\Dokumente und Einstellungen\Benutzername\Lokale Einstellungen\Anwendungsdaten\Microsoft\Windows NT\NTBackup\data"
$backuplog = Get-ChildItem $backuppath | Where-Object {$_.LastWriteTime -gt (Get-Date).AddMinutes(-45)}
...
$Att = new-object Net.Mail.Attachment($backuppath\$backuplog)
Das ganze ist natürlich ungetestet.
Gruß L.
Zitat von @Knorkator:
Mach ich.. vielleicht hat ja noch jemand nen Tipp, wie ich anstelle der .AddMinutes(-45)} gegen eine "zuletzt
geschriebene" Datei austauschen kann.
Mach ich.. vielleicht hat ja noch jemand nen Tipp, wie ich anstelle der .AddMinutes(-45)} gegen eine "zuletzt
geschriebene" Datei austauschen kann.
Versuch mal folgendes:
Get-ChildItem $backuppath -Filter *.log | Sort LastWriteTime -desc | Select -First 1