Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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, 1316 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
Exchange 2016 - E-Mail Versand

Frage von hugooo zum Thema Exchange Server ...

Exchange Server
gelöst E-Mail Versand nicht möglich - Providerwechsel (6)

Frage von Campino86 zum Thema Exchange Server ...

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

Frage von rodgerwilco zum Thema Batch & Shell ...

Neue Wissensbeiträge
Sicherheit

How I hacked hundreds of companies through their helpdesk

Information von SeaStorm zum Thema Sicherheit ...

Erkennung und -Abwehr

Ccleaner-Angriff war nur auf große Unternehmen gemünzt

(9)

Information von Lochkartenstanzer zum Thema Erkennung und -Abwehr ...

Sicherheit

Eventuell neue Lücke in Intels ME

Information von sabines zum Thema Sicherheit ...

Heiß diskutierte Inhalte
Humor (lol)
Freidach Beitrag (25)

Frage von Penny.Cilin zum Thema Humor (lol) ...

Lizenzierung
Programm soll in verschiedenen Versionen lizenziert sein (20)

Frage von Yanmai zum Thema Lizenzierung ...

Windows 7
SSD - Win7 Lags (18)

Frage von ph5555 zum Thema Windows 7 ...

Humor (lol)
Wo ist der Fehler auf dem Bild? (17)

Information von the-buccaneer zum Thema Humor (lol) ...