Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Powershell Ausgabe von Get-Childitem Where-Object incl. Dateipfad?

Frage Entwicklung Batch & Shell

Mitglied: Knorkator

Knorkator (Level 1) - Jetzt verbinden

20.01.2012 um 09:27 Uhr, 9151 Aufrufe, 5 Kommentare

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!
Mitglied: Logan000
20.01.2012 um 09:43 Uhr
Moin Moin

Wenn du den Pfad kennst schreib ihn doch auch in eine variable. Etwa so
01.
$backuppath = "C:\Dokumente und Einstellungen\Benutzername\Lokale Einstellungen\Anwendungsdaten\Microsoft\Windows NT\NTBackup\data"  
02.
$backuplog = Get-ChildItem $backuppath | Where-Object {$_.LastWriteTime -gt (Get-Date).AddMinutes(-45)} 
03.
... 
04.
 
05.
$Att = new-object Net.Mail.Attachment($backuppath\$backuplog) 
Das ganze ist natürlich ungetestet.

Gruß L.
Bitte warten ..
Mitglied: Knorkator
20.01.2012 um 10:01 Uhr
Hab ich auch schon versucht, mir ist das Verbinden der Variablen aber nicht gelungen.. mit fehlte da wohl nen \


Werde ich gleich mal testen..

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


Danke

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


thx
Bitte warten ..
Mitglied: Logan000
20.01.2012 um 11:21 Uhr
Moin

... und schon funktioniert es..

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

Gruß L.
Bitte warten ..
Mitglied: Knorkator
20.01.2012 um 15:46 Uhr
Mach ich.. vielleicht hat ja noch jemand nen Tipp, wie ich anstelle der .AddMinutes(-45)} gegen eine "zuletzt geschriebene" Datei austauschen kann.
Bitte warten ..
Mitglied: horstworst
20.04.2012 um 15:27 Uhr
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:
01.
Get-ChildItem $backuppath -Filter *.log | Sort LastWriteTime -desc | Select -First 1
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst PowerShell Where-Object multiple Conditions (2)

Frage von derhoeppi zum Thema Batch & Shell ...

Batch & Shell
gelöst Powershell - Formatierung der Ausgabe (2)

Frage von Scroller zum Thema Batch & Shell ...

Batch & Shell
gelöst Powershell Windows Update Management - get-WUinstall bleibt hängen (10)

Frage von MartinAD zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Tools
gelöst Aussendienst Datensynchronisierung (12)

Frage von lighningcrow zum Thema Windows Tools ...

Windows Server
Suche passender Treiber (12)

Frage von stolli zum Thema Windows Server ...

Peripheriegeräte
Wlan stört Funkmaus (11)

Frage von Falaffel zum Thema Peripheriegeräte ...

Peripheriegeräte
gelöst USB Festplatte verliert Laufwerksbuchstabe (9)

Frage von cese4321 zum Thema Peripheriegeräte ...