Script en powershell para monitorizar NAS

0
655
Icono powershell

En esta entrada hacemos un script en powershell para monitorizar la conectividad de un NAS en nuestra red.

Seguimos con los scripts para dummys ( y hechos por dummys ), para comprobar ciertas acciones, en este caso en powershell. Hace poco un compañero me comentó que se encontraba con una situación concreta en su centro de trabajo. El caso es que por motivos que no vienen al caso, necesitaba monitorizar la conectividad desde un ordenador a un NAS. Lo ideal sería tener un nagios pero al ser un entorno más rudimentario, sería como matar una mosca de un cañonazo.

De modo que me puse a ello y le envié este simple pero efectivo script en powershell.

Básicamente se puede resumer en:

IPS a monitorizar.

Configuración y correos a reportar.

Función que comprueba el estado.

En esta entrada básicamente añado un script para enviar un email desde un powershell.

##### AN EMAIL WILL SENT ONLY IF A HOST IS NOT RESPONDING TO PING ######
##### TESTED ON POWERSHELL version 5.1.16299.98 ######
##### host list ######
$servername = "192.168.1.1","192.168.1.4"

##### SMTP Configuration ######
##### BE SURE YOUR https://myaccount.google.com/lesssecureapps IS ACTIVE ######
$smtpserver = "smtp.gmail.com"
$port = "587"
$from = "[email protected]"
$pass = "YOURPASSWORDHERE"
$to = "[email protected]"
$subject = "::::::#### ATTENTION HOST DOWN ###::::::"

##### Function ######
foreach ($server in $servername) {
                    if (test-Connection -ComputerName $server -Count 3 -Quiet ) {
                        $body += write-output "$server host responding to ping `n"

                            } else { $body += Write-output "$server ::::::#### HOST NOT RESPONDING TO PING ###:::::: `n"

                            $message = New-Object System.Net.Mail.MailMessage
                            $message.subject = $subject
                            $message.body = $body
                            $message.to.add($to)
                            $message.from = $from
                            $smtp = New-Object System.Net.Mail.SmtpClient($smtpserver, $port);
                            $smtp.EnableSSL = $true
                            $smtp.Credentials = New-Object System.Net.NetworkCredential($from, $pass);
                            $smtp.send($message)
                            write-host "Mail Sent"
                            }

}

Podemos añadir tantas IPS como queramos, separadas por una coma e introduciendo las IPS entre comillas.

En el siguiente enlace podrás ver como añadir un script al programador de tareas de Windows. No tiene pérdida!

Hasta la próxima

Dejar respuesta

Please enter your comment!
Please enter your name here