knorkator
Goto Top

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!

Content-Key: 179228

Url: https://administrator.de/contentid/179228

Printed on: April 24, 2024 at 10:04 o'clock

Member: Logan000
Logan000 Jan 20, 2012 at 08:43:50 (UTC)
Goto Top
Moin Moin

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.
Member: Knorkator
Knorkator Jan 20, 2012 at 09:01:48 (UTC)
Goto Top
Hab ich auch schon versucht, mir ist das Verbinden der Variablen aber nicht gelungen.. mit fehlte da wohl nen \
face-smile

Werde ich gleich mal testen..

Falls noch jemand nen kürzeren Weg kennt.. immer her damit!
face-smile

Danke

edit:
Habe das \ durch nen + ersetzt.. und schon funktioniert es..
face-smile

thx
Member: Logan000
Logan000 Jan 20, 2012 at 10:21:03 (UTC)
Goto Top
Moin

... und schon funktioniert es..

Dann sei doch bitte so gut und setzte den Beitrag auf gelöst.
Danke

Gruß L.
Member: Knorkator
Knorkator Jan 20, 2012 at 14:46:20 (UTC)
Goto Top
Mach ich.. vielleicht hat ja noch jemand nen Tipp, wie ich anstelle der .AddMinutes(-45)} gegen eine "zuletzt geschriebene" Datei austauschen kann.
Member: horstworst
horstworst Apr 20, 2012 at 13:27:25 (UTC)
Goto Top
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.

Versuch mal folgendes:
Get-ChildItem $backuppath -Filter *.log | Sort LastWriteTime -desc | Select -First 1