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, 1293 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
Exchange Server
gelöst E-Mail Versand nicht möglich - Providerwechsel (6)

Frage von Campino86 zum Thema Exchange Server ...

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 ...

Neue Wissensbeiträge
Windows 10

Windows 8.x oder 10 Lizenz-Key aus dem ROM auslesen mit Linux

(6)

Tipp von Lochkartenstanzer zum Thema Windows 10 ...

Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(40)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Heiß diskutierte Inhalte
Windows 10
gelöst Windows 10 Home "Netzlaufwerk nicht bereit" (19)

Frage von Oggy01 zum Thema Windows 10 ...

Exchange Server
gelöst RU 17 Exchange 2010 . Erfahrungen? (10)

Frage von keine-ahnung zum Thema Exchange Server ...

Datenbanken
gelöst MySQL Zeiterfassungs-Problematik (wer ist eingecheckt) (9)

Frage von NativeMode zum Thema Datenbanken ...

Windows Server
Festplatten Ruhezustand Windows Server 2016 (8)

Frage von ahaeuser zum Thema Windows Server ...