expetrov
Goto Top

Dieverse Ordners mit Powershell monitoren

Ich bin dabei ein kleine Powershell script zu erstellen welche auf ein WIN Server diverse ordners den Aktuellen Datum mit $_.LastWriteTime vergleichen soll, und wenn ein Datei fehlt es soll dann ein Send-Mailmessage ausgeführt werden.. Könnt Ihr bitte mein script kurz anschauen und ein paar tipps geben wie ich es verbessern kann. zumbeispiel wie ich die diverse ordners von eine externe liste inportieren kann..

Danke & Gruss Mike

$sub = 'Server Monitoring 10:00 Uhr check'

#Aktuelle Datum
$day = (get-date).AddDays(0).Date

#Verzeichnisse
$Datei1 = '\\server\LW$\Orner\*.txt.bak'
$Datei2 = '\\server\LW$\Orner\unterordner\*.txt'
$Datei3 = '\\server\LW$\Orner\Orner1\ordner2\*.txt'

if (Test-Path $Datei)
{get-childitem $Datei1 | where-object {$_.LastWriteTime -ge $day }}

else {Send-Mailmessage -to meineemail@admin.com -Subject " $sub " -from monitoring@admin.com -Body "Im Verzeichnis '$Datei1' existiert nicht bitte prüfen.." -SmtpServer "smtp.server.com" }
#else {echo "Im Verzeichnis '$Datei' Datei existiert nicht bitte prüfen.."}

if (Test-Path $Datei2)
{get-childitem $Datei2 | where-object {$_.LastWriteTime -ge $day }}

else {Send-Mailmessage -to meineemail@admin.com -Subject " $sub " -from monitoring@admin.com -Body "Im Verzeichnis '$Datei2' existiert nicht bitte prüfen.." -SmtpServer "smtp.server.com" }
#else {echo "Im Verzeichnis '$Datei' Datei existiert nicht bitte prüfen.."}

if (Test-Path $Datei3)
{get-childitem $Datei3 | where-object {$_.LastWriteTime -ge $day }}

else {Send-Mailmessage -to meineemail@admin.com -Subject " $sub " -from monitoring@admin.com -Body "Im Verzeichnis '$Datei3' existiert nicht bitte prüfen.." -SmtpServer "smtp.server.com" }
#else {echo "Im Verzeichnis '$Datei' Datei existiert nicht bitte prüfen.."}

Content-ID: 276965

Url: https://administrator.de/forum/dieverse-ordners-mit-powershell-monitoren-276965.html

Ausgedruckt am: 20.02.2025 um 01:02 Uhr

114757
114757 10.07.2015 aktualisiert um 10:37:58 Uhr
Goto Top
Moin,
Für solche Aufgaben gibt es das FileSystemWatcher-Objekt.
Siehe: VBA - VBS : Umbennen und Verschieben von Dateien in Loop

$day = (get-date).AddDays(0).Date
Was soll das für ein Konstrukt sein ?? Da reicht ein (get-date).Date

Um Pfade aus einer Textdatei zu laden bedienst du dich einer einfachen foreach-Schleife
(gc 'c:\Ordner\pfade.txt') | %{  
    # in $_ steht immer der Inhalt der aktuellen Zeile aus der Textdatei
    Write-Host $_
}

Gruß jodel32
expetrov
expetrov 10.07.2015 um 11:34:34 Uhr
Goto Top
Hallo jodel32,

Danke für die info... face-smile

$day = (get-date).AddDays(0).Date = sorry, ich habe nach diverse funktionen beispiel: AddDays(-1).Date getestet und ich glaube ich habe mich vertippt /vergessen zu korrigieren..

Gruss
Mike
aqui
aqui 10.07.2015 aktualisiert um 13:09:58 Uhr
Goto Top
Nur um Mal das Drama hier um den Plural von "Ordner" zu klären:
http://www.duden.de/rechtschreibung/Ordner
Die diversen anderen Dinge mal außer acht gelassen.
Es sei nochmal auf den "Bearbeiten" Button hingewiesen face-wink
Aber es ist ja Freitag....