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.."}
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.."}
Please also mark the comments that contributed to the solution of the article
Content-Key: 276965
Url: https://administrator.de/contentid/276965
Printed on: May 4, 2024 at 08:05 o'clock
3 Comments
Latest comment
Moin,
Für solche Aufgaben gibt es das FileSystemWatcher-Objekt.
Siehe: VBA - VBS : Umbennen und Verschieben von Dateien in Loop
Um Pfade aus einer Textdatei zu laden bedienst du dich einer einfachen foreach-Schleife
Gruß jodel32
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).DateUm 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
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
Aber es ist ja Freitag....
http://www.duden.de/rechtschreibung/Ordner
Die diversen anderen Dinge mal außer acht gelassen.
Es sei nochmal auf den "Bearbeiten" Button hingewiesen
Aber es ist ja Freitag....