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, 1304 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
Windows Server

Umstellung SHA 1 auf SHA 2 - Migration der CA von CSP auf KSP

Tipp von Badger zum Thema Windows Server ...

Windows 10

Quato DTP94 unter Windows 10 x64 installieren und verwenden

Anleitung von anteNope zum Thema Windows 10 ...

Windows 10

Win10 1703 und Nutzerkennwörter bei Ersteinrichtung - erstaunliche Erkenntnis

(15)

Erfahrungsbericht von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Internet
Jeden morgen Internet-Probleme (32)

Frage von pjrtvly zum Thema Internet ...

Server-Hardware
HP DL380 G7: Booten vom USB via USB 3.1-PCI-e Karte möglich? (24)

Frage von Paderman zum Thema Server-Hardware ...

Windows 7
Bluesreens unternehmensweit (19)

Frage von SYS64738 zum Thema Windows 7 ...

LAN, WAN, Wireless
IP Adressen - Modem - Switch - Accesspoint (19)

Frage von teuferl82 zum Thema LAN, WAN, Wireless ...