Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people, just like you, are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
Solved

How do i for monitoring a RAID with an script (VBs, powershell, batch file)?

Posted on 2010-11-10
1
1,690 Views
Last Modified: 2012-05-10
Hello,

There is a command for monitoring the status of a RAID Hardware called hpacucli.exe (C:\Program Files (x86)\Compaq\Hpacucli\Bin\hpacucli.exe)...

The output of that command is

hpacucli.exe ctrl all show status

Smart Array B110i SATA RAID in Slot 0 (Embedded)
   Controller Status: OK

I need a script that could be added as a scheduled task  to check that the array is healthy, and if not, send an email informing of it.

Thanks in advance
0
Comment
Question by:VMWARE
1 Comment
 
LVL 6

Accepted Solution

by:
r3nder earned 500 total points
ID: 34109047
Change username, Password, emails, etc - Compile this in Visual studio in a C# Windows app - just replace the code in the form with this and go to the release folder and get your exe - schedule it to run when ever - should do the trick

Thanks
R3nder
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
using System.Management;
using System.Xml;
using System.Xml.Schema;
using System.IO;
using System.Security;
using System.Runtime.InteropServices;
using System.Net.Mail;
using System.Reflection;
using System.Security.Principal;


namespace RaidTest
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            bool errorRedirect = false;

            string curFile = @"C:\Program Files (x86)\Compaq\Hpacucli\Bin\hpacucli.exe";
            MessageBox.Show((File.Exists(curFile) ? "Opening......" : "File does not exist"));
            if (File.Exists(curFile))
            {
                var proc = new Process();
                proc.StartInfo.FileName = "C:/Program Files (x86)/Compaq/Hpacucli/Bin/hpacucli.exe";
                proc.Start();
                proc.WaitForExit();
                proc.BeginErrorReadLine();
                
                {
                    MailToME();
                }

                var exitCode = proc.ExitCode;
                proc.Close();
                
            }
        }
        
            public void MailToME()
            {
                //create the mail message
                MailMessage mail = new MailMessage();

                //set the addresses
                mail.From = new MailAddress("MyName@mycompany.com");
                mail.To.Add("Anothername@mycompany.com");
                mail.Bcc.Add("Anothername@mycompany.com");

                //set the content
                mail.Subject = "Raid failed";
                mail.Body = "I geuss I should see what happened on:"  + DateTime.Now;
                //send the message
                SmtpClient smtp = new SmtpClient("172.0.0.1");
                smtp.Credentials = new System.Net.NetworkCredential("USER", "PASS");
                smtp.Send(mail);
                
                this.Close();
                this.Dispose();
            }
        }
    }

Open in new window

0

Featured Post

Resolve Critical IT Incidents Fast

If your data, services or processes become compromised, your organization can suffer damage in just minutes and how fast you communicate during a major IT incident is everything. Learn how to immediately identify incidents & best practices to resolve them quickly and effectively.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

How to sign a powershell script so you can prevent tampering, and only allow users to run authorised Powershell scripts
This article explains how to prepare an HTML email signature template file containing dynamic placeholders for users' Azure AD data. Furthermore, it explains how to use this file to remotely set up a department-wide email signature policy in Office …
Learn the basics of lists in Python. Lists, as their name suggests, are a means for ordering and storing values. : Lists are declared using brackets; for example: t = [1, 2, 3]: Lists may contain a mix of data types; for example: t = ['string', 1, T…
Learn how to match and substitute tagged data using PHP regular expressions. Demonstrated on Windows 7, but also applies to other operating systems. Demonstrated technique applies to PHP (all versions) and Firefox, but very similar techniques will w…

828 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question