Powershell - Watchfolder and email results

Status
Niet open voor verdere reacties.

coen17stam

Gebruiker
Lid geworden
21 aug 2010
Berichten
55
Hallo,

Ik heb inmiddels twee powershell scriptjes namelijk;

1. Email mij een bestanden in een spicifieke folder met de inhoud van de folder als bijlage.
2. Houdt een specifieke folder in de gaten op veranderingen

Punt is nu dat ik deze twee wil combineren dus, wanneer er een verandering plaats vind in een specifieke folder mail mij dan het bestand wat in de folder zit.
Iemand hier die mij opweg kan helpen?

1.
Code:
Param (
	[string]$Path = "D:\99_OVERIGE\05_LOGS\01_FREE_FILE_SYNC\",
	)


#Connection Details
$username=”mijnemaildadres@hotmail.com”
$password=”wachtwoord”
$smtpServer = “smtp.live.com”
$msg = new-object Net.Mail.MailMessage

#Change port number for SSL to 587
$smtp = New-Object Net.Mail.SmtpClient($SmtpServer, 587) 

#Uncomment Next line for SSL  
$smtp.EnableSsl = $true

$smtp.Credentials = New-Object System.Net.NetworkCredential( $username, $password )

#From Address
$msg.From = "mijnemaildadres@hotmail.com"
#To Address, Copy the below line for multiple recipients
$msg.To.Add(“mijnemaildadres@hotmail.com”)

#Message Body
$msg.Body=”Free File Sync is klaar, hierbij het LOG bestand”

#Message Subject
$msg.Subject = “Notificatie”

$File = Get-ChildItem $Path | Where { $_.LastWriteTime -ge [datetime]::Now.AddMinutes(-10) }
If ($File)
{	$SMTPBody = "`nThe following files have recently been added/changed:`n`n"
	$File | ForEach { $SMTPBody += "$($_.FullName)`n" }
	Send-MailMessage @SMTPMessage -Body $SMTPBody
	
}

2.
Code:
Function Register-Watcher {
    param ($folder)
    $filter = "*.*" #all files
    $watcher = New-Object IO.FileSystemWatcher $folder, $filter -Property @{ 
        IncludeSubdirectories = $false
        EnableRaisingEvents = $true
    }

    $changeAction = [scriptblock]::Create('
        # This is the code which will be executed every time a file change is detected
        $path = $Event.SourceEventArgs.FullPath
        $name = $Event.SourceEventArgs.Name
        $changeType = $Event.SourceEventArgs.ChangeType
        $timeStamp = $Event.TimeGenerated
        Write-Host "The file $name was $changeType at $timeStamp"
    ')

    Register-ObjectEvent $Watcher "Changed" -Action $changeAction
}

 Register-Watcher "D:\99_OVERIGE\05_LOGS\01_FREE_FILE_SYNC"
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan