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

Dateiüberprüfung per Powershell - Versand per Mail

Frage Netzwerke Monitoring

Mitglied: smithers

smithers (Level 1) - Jetzt verbinden

27.08.2014 um 20:54 Uhr, 1280 Aufrufe, 3 Kommentare, 1 Danke

Hallo liebe Community,

gibt es eine Möglichkeit per Powershell eine Datei zu überwachen und falls diese geändert wird eine Email zu versenden ?
Dies muss nicht live geschehen, das Script soll dann als Task eingebunden sein und alle 15 Minuten laufen.
Die Email soll dann nur den Pfad zur Datei beinhalten.

Leider finde ich keinen Weg, dies irgendwie zu implementieren.
Ich hoffe Ihr könnt mir den Stoß in die richtige Such/Gedankenrichtung geben.

Vielen Dank und einen schönen Abend

Gruß

smithers
Mitglied: DerWoWusste
27.08.2014 um 22:09 Uhr
Hi.

Mit "per Powershell" engst Du die Möglichkeiten ein, warum? Nimm einfach die NTFS-Überwachung, überwache Schreibzugriffe auf die Datei, damit wird in Echtzeit ein Event generiert, an das Du Deinen Mailtask triggern kannst.
Bitte warten ..
Mitglied: colinardo
LÖSUNG 28.08.2014, aktualisiert 12.11.2014
Moin smithers,
würde auch die Lösung von @DerWoWusste nehmen, wenn du es aber unbedingt mit Powershell machen möchtest kann man dies hiermit erreichen (Wichtig: Hiermit lassen sich nur lokale Ordner überwachen, keine Netzlaufwerke):
Dass Script überprüft alle 60 Sekunden ob in dieser Zeit eine Änderung der Datei stattgefunden hat. Das Script muss also nur einmal gestartet werden und überwacht dann die Events im Hintergrund.
01.
<# 
02.
     Monitor folder changes 
03.
#> 
04.
 
05.
# Variables ------------------------- 
06.
# local folder path to monitor 
07.
    $localFolderPath = "C:\Ordner"  
08.
#Filename to check for changes 
09.
    $strFilename = "demo.txt" 
10.
# interval to check for changes (seconds) 
11.
    $intMonitorInterval = 60 
12.
# ----------------------------------- 
13.
 
14.
# get seperate drive and path for wql query specific formatting 
15.
$strDrive = $localFolderPath.Split("\")[0] 
16.
$localFolderPath.TrimEnd("\") 
17.
$strPath = $localFolderPath.Split(":")[1].Replace("\","\\")+"\\" 
18.
 
19.
# action fired when event occurs 
20.
$eventaction = { 
21.
    #object which fired the event 
22.
    $obj = $Event.SourceEventArgs.NewEvent.TargetInstance 
23.
    $objWMI = gwmi "Win32_OperatingSystem" 
24.
    $modifiedDate = get-date ($objWMI.ConvertToDateTime($obj.LastModified)) -Format 'dd.MM.yyyy HH:mm:ss' 
25.
 
26.
    # send mail 
27.
    $smtpusername = 'USERNAME' 
28.
    $smtppassword = 'PASSWORD' 
29.
    $smtpfrom = 'fromuser@domain.de' 
30.
    $smtpto = 'fromuser@domain.de' 
31.
    $smtpserver = "smtp.server.de" 
32.
    $smtpcred = new-Object pscredential($smtpusername,(Convertto-SecureString $smtppassword -AsPlainText -Force)) 
33.
    Try{ 
34.
     Send-MailMessage -To $smtpto -From $smtpfrom -Subject 'Eine Datei hat sich geändert' -Body "Die Datei '$($obj.Name)' wurde geändert am $modifiedDate" -SmtpServer $smtpserver -UseSsl -Credential $smtpcred -Encoding UTF8 -ErrorAction Stop 
35.
     write-host "Datei '$strFilename' wurde geändert am $modifiedDate, eine E-Mail wurde verschickt." -ForegroundColor Green 
36.
    }catch{ 
37.
      write-host $_ 
38.
39.
40.
 
41.
$query = "Select * From __InstanceModificationEvent WITHIN $intMonitorInterval` 
42.
          where TargetInstance ISA 'CIM_DataFile'` 
43.
          and TargetInstance.Drive = '$strDrive'` 
44.
          and TargetInstance.Path = '$strPath'` 
45.
          and TargetInstance.Name like '%$strFilename'" 
46.
 
47.
#actually register Event-Subscriber 
48.
Register-WmiEvent -query $query -SourceIdentifier "Monitor Folder Watcher" -action $eventaction 
49.
 
50.
while($true){ 
51.
    sleep($intMonitorInterval) 
52.
53.
 
54.
# to unregister the event  call 
55.
# Unregister-Event -SourceIdentifier "Monitor Folder Watcher"
Grüße Uwe
Bitte warten ..
Mitglied: smithers
29.08.2014 um 11:11 Uhr
Hallo zusammen,

herzlichen Dank für die prompten Lösungvorschläge.
per Powershell war nur ein Gedanke von mir, da ich dachte dies einfacher gelöst zu bekommen.

Den Lösungsvorschlag mit der NTFS Überwachung sehe ich mir mal genauer an..

Vielen Dank dafür.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Powershell Skript Ordnerinhalt auflisten und per E-Mail verschicken (2)

Frage von xbast1x zum Thema Batch & Shell ...

Exchange Server
gelöst SBS 2003 Exchange deaktiviert - E-Mail-Versand untereinander funktioniert nicht (3)

Frage von Wirdnoch zum Thema Exchange Server ...

Batch & Shell
gelöst Powershell - Zeilenumbruch in Mail (2)

Frage von rodgerwilco zum Thema Batch & Shell ...

Exchange Server
Exchange 2016 - E-Mail Versand

Frage von hugooo zum Thema Exchange Server ...

Neue Wissensbeiträge
Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(3)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(9)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Heiß diskutierte Inhalte
Exchange Server
Exchange 2016 Standard Server 2012 R2 Hetzner Mail (41)

Frage von Datsspeed zum Thema Exchange Server ...

Windows 7
gelöst Lokales Adminprofil defekt (25)

Frage von Yannosch zum Thema Windows 7 ...

Off Topic
gelöst Fachzeitschriften als E-Book oder hardcoded? (11)

Frage von KowaKowalski zum Thema Off Topic ...

Windows 10
Windows Store Apps ohne Windows Store installieren (10)

Frage von keefien zum Thema Windows 10 ...