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

Batch & Shell
Powershell, PDF (6)

Frage von AnkhMorpork zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Update

Novemberpatches und Nadeldrucker bereiten Kopfschmerzen

(14)

Tipp von MettGurke zum Thema Windows Update ...

Windows 10

Abhilfe für Abstürze von CDPUsersvc auf Win10 1607 und 2016 1607

(7)

Tipp von DerWoWusste zum Thema Windows 10 ...

RedHat, CentOS, Fedora

Fedora 27 ist verfügbar

Information von Frank zum Thema RedHat, CentOS, Fedora ...

Heiß diskutierte Inhalte
Windows Server
Kennwort vergessen bei Hyper vserver 2012r (12)

Frage von jensgebken zum Thema Windows Server ...

Linux Desktop
Bildschirmauflösung unter Linux festlegen (12)

Frage von itebob zum Thema Linux Desktop ...

Windows Userverwaltung
gelöst Administrator hat alle Rechte verloren (10)

Frage von mrdead zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
Gebäude mit WLAN ausstatten (9)

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