示例#1
0
        public static bool testeConnWMI(string srv, string usr, string pwd)
        {
            MPSfwk.Model.Server s = new MPSfwk.Model.Server();
            s.IPHOST  = srv;
            s.USUARIO = usr;
            s.SENHA   = pwd;
            //Chama a função para o Gerenciamento WMI remoto/local
            // se ocorre erro, tenta a conexão local...
            ManagementScope ms = scopeMgmt(true, s);

            //
            try
            {
                if (ms.IsConnected == true)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            catch (Exception)
            {
                return(false);
            }
        }
示例#2
0
        protected void RegisterUser_CreatedUser(object sender, EventArgs e)
        {
            FormsAuthentication.SetAuthCookie(RegisterUser.UserName, false /* createPersistentCookie */);

            string continueUrl = RegisterUser.ContinueDestinationPageUrl;

            if (String.IsNullOrEmpty(continueUrl))
            {
                continueUrl = "~/";
            }

            //
            string pathSrv   = ConfigurationManager.AppSettings["XMLData"];
            string remoteDir = RegisterUser.UserName.Replace("\\", "_");
            string msg;

            //=== MPS 09/OUT - Refatorado código ==================================================
            //    Cria Instancia Server
            //----------------------------------------------------
            MPSfwk.Model.Server s = new MPSfwk.Model.Server();
            s.IPHOST  = txtServer.Text;
            s.USUARIO = txtUser.Text;
            s.SENHA   = txtPass.Text;

            if (chkRemoto.Checked != true)
            {
                s.USUARIO = "";
            }

            //Chama a rotina para criar a pasta...
            msg = MPSfwk.WMI.CriaPastaSite(pathSrv, remoteDir, s);
            //----------------------------------------------------
            //    Fim
            //=== MPS 09/OUT - Refatorado código ==================================================

            if (msg != "0")
            {
                lblStatus1.Visible = true;
                lblStatus2.Text    = "";
                chkRemoto.Checked  = false;
                txtServer.Visible  = false;
                txtUser.Visible    = false;
                txtPass.Visible    = false;
                lblStatus1.Text    = msg;
            }
            else
            {
                Response.Redirect(continueUrl);
            }
        }
示例#3
0
        protected void RegisterUser_CreatedUser(object sender, EventArgs e)
        {
            FormsAuthentication.SetAuthCookie(RegisterUser.UserName, false /* createPersistentCookie */);

            string continueUrl = RegisterUser.ContinueDestinationPageUrl;
            if (String.IsNullOrEmpty(continueUrl))
            {
                continueUrl = "~/";
            }

            //
            string pathSrv = ConfigurationManager.AppSettings["XMLData"];
            string remoteDir = RegisterUser.UserName.Replace("\\","_");
            string msg;

            //=== MPS 09/OUT - Refatorado código ==================================================
            //    Cria Instancia Server
            //----------------------------------------------------
            MPSfwk.Model.Server s = new MPSfwk.Model.Server();
            s.IPHOST = txtServer.Text;
            s.USUARIO = txtUser.Text;
            s.SENHA = txtPass.Text;

            if (chkRemoto.Checked != true)
            {
                s.USUARIO = "";
            }

            //Chama a rotina para criar a pasta...
            msg = MPSfwk.WMI.CriaPastaSite(pathSrv, remoteDir, s);
            //----------------------------------------------------
            //    Fim
            //=== MPS 09/OUT - Refatorado código ==================================================

            if (msg != "0")
            {
                lblStatus1.Visible = true;
                lblStatus2.Text = "";
                chkRemoto.Checked = false;
                txtServer.Visible = false;
                txtUser.Visible = false;
                txtPass.Visible = false;
                lblStatus1.Text = msg;
            }
            else
            { Response.Redirect(continueUrl); }
        }
示例#4
0
        public Model.Server GerarObjeto(string srv, string usr, string psw)
        {
            Model.Server s = new MPSfwk.Model.Server();

            if (srv != "")
            {
                s.IPHOST = srv;
            }
            if (usr != "")
            {
                s.USUARIO = usr;
            }
            if (psw != "")
            {
                s.SENHA = psw;
            }

            return s;
        }
示例#5
0
        public Model.Server GerarObjeto(string srv, string usr, string psw)
        {
            Model.Server s = new MPSfwk.Model.Server();

            if (srv != "")
            {
                s.IPHOST = srv;
            }
            if (usr != "")
            {
                s.USUARIO = usr;
            }
            if (psw != "")
            {
                s.SENHA = psw;
            }

            return(s);
        }
示例#6
0
        public static string InsertAT(string srv, string usr, string pwd,
                                      string inCMD, string inRPT, string inDOW, string inDOM, string inSTM)
        {
            try
            {
                MPSfwk.Model.Server s = new MPSfwk.Model.Server();
                s.IPHOST  = srv;
                s.USUARIO = usr;
                s.SENHA   = pwd;
                string               strJobId         = "";
                ManagementScope      ms               = scopeMgmt(false, s);
                ObjectGetOptions     objectGetOptions = new ObjectGetOptions();
                ManagementPath       managementPath   = new ManagementPath("Win32_ScheduledJob");
                ManagementClass      processClass     = new ManagementClass(ms, managementPath, objectGetOptions);
                ManagementBaseObject inParams         = processClass.GetMethodParameters("Create");
                inParams["Command"]             = inCMD;
                inParams["InteractWithDesktop"] = "False";
                inParams["RunRepeatedly"]       = inRPT;
                inParams["DaysOfMonth"]         = inDOM;
                inParams["DaysOfWeek"]          = inDOW;
                inParams["StartTime"]           = inSTM + "00.000000-180";
                ManagementBaseObject outParams =
                    processClass.InvokeMethod("Create", inParams, null);

                strJobId = outParams["JobId"].ToString();

                return("Novo JobId (" + strJobId + ") criado com sucesso!");
            }
            catch (UnauthorizedAccessException uex)
            {
                return("Ocorreu um erro: " + uex.Message);
            }
            catch (ManagementException mex)
            {
                return("Ocorreu um erro: " + mex.Message);
            }
        }
示例#7
0
 public static bool testeConnWMI(string srv, string usr, string pwd)
 {
     MPSfwk.Model.Server s = new MPSfwk.Model.Server();
     s.IPHOST = srv;
     s.USUARIO = usr;
     s.SENHA = pwd;
     //Chama a função para o Gerenciamento WMI remoto/local
     // se ocorre erro, tenta a conexão local...
     ManagementScope ms = scopeMgmt(true, s);
     //
     try
     {
         if (ms.IsConnected == true)
         { return true; }
         else
         { return false; }
     }
     catch (Exception)
     {
         return false;
     }
 }
示例#8
0
        public static string InsertAT(  string srv, string usr, string pwd, 
                                        string inCMD, string inRPT, string inDOW, string inDOM, string inSTM)
        {
            try
            {
                MPSfwk.Model.Server s = new MPSfwk.Model.Server();
                s.IPHOST = srv;
                s.USUARIO = usr;
                s.SENHA = pwd;
                string strJobId = "";
                ManagementScope ms = scopeMgmt(false, s);
                ObjectGetOptions objectGetOptions = new ObjectGetOptions();
                ManagementPath managementPath = new ManagementPath("Win32_ScheduledJob");
                ManagementClass processClass = new ManagementClass(ms, managementPath, objectGetOptions);
                ManagementBaseObject inParams = processClass.GetMethodParameters("Create");
                inParams["Command"] = inCMD;
                inParams["InteractWithDesktop"] = "False";
                inParams["RunRepeatedly"] = inRPT;
                inParams["DaysOfMonth"] = inDOM;
                inParams["DaysOfWeek"] = inDOW;
                inParams["StartTime"] = inSTM + "00.000000-180";
                ManagementBaseObject outParams =
                        processClass.InvokeMethod("Create", inParams, null);

                strJobId = outParams["JobId"].ToString();

                return "Novo JobId (" + strJobId + ") criado com sucesso!";
            }
            catch (UnauthorizedAccessException uex)
            {
                return "Ocorreu um erro: " + uex.Message;
            }
            catch (ManagementException mex)
            {
                return "Ocorreu um erro: " + mex.Message;
            }
        }
示例#9
0
        public static DataTable GroupMembers(string srv, string usr, string pwd)
        {
            StringBuilder result = new StringBuilder();
            try
            {
                //
                MPSfwk.Model.Server s = new MPSfwk.Model.Server();
                s.IPHOST = srv;
                s.USUARIO = usr;
                s.SENHA = pwd;
                ManagementScope ms = scopeMgmt(false, s);
                ObjectGetOptions objectGetOptions = new ObjectGetOptions();
                //
                string targethost = "";
                string groupname = "";
                string aux_qry = "";
                if ((srv.IndexOf(".") == -1) && (srv.ToUpper() != "LOCALHOST"))
                {   aux_qry = "select * from Win32_Group Where Domain = '" + srv + "'"; }
                else
                { aux_qry = "select * from Win32_Group Where LocalAccount = True"; }
                //
                //MPS teste - 10/out
                //
                Console.WriteLine("DEBUG - aux_qry = " + aux_qry);
                //
                DataTable dt_aux = dtlistaClasse("Win32_Group",
                                                    aux_qry,
                                                    srv,
                                                    usr,
                                                    pwd);
                //
                //Cria tabela para preencher os campos
                DataTable dt1 = new DataTable();
                dt1.TableName = "GroupMembers";
                dt1.Columns.Add("Domain");
                dt1.Columns.Add("Group Name");
                dt1.Columns.Add("Users");
                //
                foreach (DataRow drow in dt_aux.Rows)
                {
                    //
                    DataRow dr = dt1.NewRow();
                    //
                    targethost = drow["Domain"].ToString();
                    groupname = drow["Name"].ToString();

                    StringBuilder qs = new StringBuilder();
                    qs.Append("SELECT PartComponent FROM Win32_GroupUser WHERE GroupComponent = \"Win32_Group.Domain='");
                    qs.Append(targethost);
                    qs.Append("',Name='");
                    qs.Append(groupname);
                    qs.AppendLine("'\"");
                    ObjectQuery query = new ObjectQuery(qs.ToString());
                    ManagementObjectSearcher searcher = new ManagementObjectSearcher(ms, query);
                    ManagementObjectCollection queryCollection = searcher.Get();
                    foreach (ManagementObject m in queryCollection)
                    {
                        ManagementPath path = new ManagementPath(m["PartComponent"].ToString());
                        {
                            String[] names = path.RelativePath.Split(',');
                            result.Append(names[0].Substring(names[0].IndexOf("=") + 1).Replace("\"", " ").Trim() + "\\");
                            result.AppendLine(names[1].Substring(names[1].IndexOf("=") + 1).Replace("\"", " ").Trim() + " ; ");
                        }
                    }
                    //Console.WriteLine("Domain =  " + targethost + " Name = " + groupname + " Users = " + result.ToString());
                    dr["Domain"] = targethost;
                    dr["Group Name"] = groupname;
                    dr["Users"] = result.ToString();
                    dt1.Rows.Add(dr);
                    //
                    result = new StringBuilder();

                }
                return dt1;
                //
            }
            catch (Exception e)
            {
                Console.WriteLine("|!| GroupMembers Error - " + e.Message);
                return null;
            }
        }
示例#10
0
        public static DataTable dtlistaClasse(string cls, string cls_SEL, string srv, string usr, string pwd)
        {
            try
            {
                MPSfwk.Model.Server s = new MPSfwk.Model.Server();
                s.IPHOST = srv;
                s.USUARIO = usr;
                s.SENHA = pwd;

                ManagementScope ms = scopeMgmt(true, s);   //true = testa a conexao remota, senao
                                                            //       acaba retornando a local***
                                                            //       extrai as classes localmente...
                //teste de conexao...
                if (ms == null) { return null; }

                ManagementObjectSearcher srcd;
                //
                //testa se a Classe possui o Host ao inves do IP, se for muda o LocalAccount
                string aux_qry = "";
                if (    (srv.IndexOf(".") == -1)                                &&
                        (cls_SEL.ToUpper().IndexOf("LOCALACCOUNT = TRUE") > 0)  &&
                        (srv.ToUpper() != "LOCALHOST")
                   )
                {   aux_qry = cls_SEL.ToUpper().Replace("LOCALACCOUNT = TRUE", ("Domain = '" + srv.ToUpper() + "'")); }
                else
                {   aux_qry = cls_SEL; }
                //
                //MPS teste - 10/out
                Console.WriteLine("DEBUG - aux_qry = " + aux_qry);
                //
                srcd = new ManagementObjectSearcher(ms, new ObjectQuery(aux_qry));
                ManagementObjectCollection moc = srcd.Get();

                //Cria tabela para preencher os campos
                DataTable dt1 = new DataTable();
                dt1.TableName = cls;

                //teste...
                string aux_cls = "";
                string[] aux = cls_SEL.Split(' ');
                if (aux.Length == 3)
                { aux_cls = aux[3]; }
                else
                {
                    for (int i = 1; i < aux.Length; i++)
                    {
                        if (aux[i].ToUpper() == "FROM")
                        {
                            aux_cls = aux[i+1];
                            break;
                        }
                    }
                }

                //Preenche o Grid com as colunas da classe WMI
                //(Caso haja campos determinados, seleciona somente os campos determinados...)
                //
                //ordena, conforme entrada..
                string[] ordem = null;
                if (cls_SEL.IndexOf("*") > 0)
                {
                    var wmiClasse = new ManagementClass(aux_cls);
                    foreach (var prop in wmiClasse.Properties)
                    { if ((cls_SEL.IndexOf(prop.Name) > 0) || (cls_SEL.IndexOf("*") > 0)) { dt1.Columns.Add(prop.Name); } }
                }
                else
                {
                    int pos1 = cls_SEL.ToUpper().IndexOf("SELECT") + 6;
                    int pos2 = cls_SEL.ToUpper().IndexOf("FROM");
                    if (pos1 < pos2)
                    {
                        if (cls_SEL.IndexOf(",") > 0)
                        { ordem = cls_SEL.Substring(pos1, (pos2 - pos1)).Trim().Split(',', ' '); }
                        else
                        { ordem[0] = cls_SEL.Substring(pos1, (pos2 - pos1)); }
                        //
                        //Preenche as colunas com os campos determinados...
                        for (int i = 0; i < ordem.Length; i++)
                        {
                            if (ordem[i] != "")
                            { dt1.Columns.Add(ordem[i]); }
                        }
                    }
                }

                //Preenche o Grid com os valores da classe WMI
                foreach (ManagementObject mo in moc)
                {
                    DataRow dr = dt1.NewRow();

                    System.Management.PropertyDataCollection pdc = mo.Properties;
                    foreach (System.Management.PropertyData pd in pdc) { dr[pd.Name] = pd.Value; }

                    dt1.Rows.Add(dr);
                }
                //
                //
                return dt1;
            }
            catch (UnauthorizedAccessException)
            {
                return null;
            }
            catch (ManagementException)
            {
                return null;
            }
        }
示例#11
0
        public static DataTable dtlistaClasse(string cls, string cls_SEL, string srv, string usr, string pwd)
        {
            try
            {
                MPSfwk.Model.Server s = new MPSfwk.Model.Server();
                s.IPHOST  = srv;
                s.USUARIO = usr;
                s.SENHA   = pwd;

                ManagementScope ms = scopeMgmt(true, s);   //true = testa a conexao remota, senao
                                                           //       acaba retornando a local***
                                                           //       extrai as classes localmente...
                //teste de conexao...
                if (ms == null)
                {
                    return(null);
                }

                ManagementObjectSearcher srcd;
                //
                //testa se a Classe possui o Host ao inves do IP, se for muda o LocalAccount
                string aux_qry = "";
                if ((srv.IndexOf(".") == -1) &&
                    (cls_SEL.ToUpper().IndexOf("LOCALACCOUNT = TRUE") > 0) &&
                    (srv.ToUpper() != "LOCALHOST")
                    )
                {
                    aux_qry = cls_SEL.ToUpper().Replace("LOCALACCOUNT = TRUE", ("Domain = '" + srv.ToUpper() + "'"));
                }
                else
                {
                    aux_qry = cls_SEL;
                }
                //
                //MPS teste - 10/out
                Console.WriteLine("DEBUG - aux_qry = " + aux_qry);
                //
                srcd = new ManagementObjectSearcher(ms, new ObjectQuery(aux_qry));
                ManagementObjectCollection moc = srcd.Get();

                //Cria tabela para preencher os campos
                DataTable dt1 = new DataTable();
                dt1.TableName = cls;

                //teste...
                string   aux_cls = "";
                string[] aux     = cls_SEL.Split(' ');
                if (aux.Length == 3)
                {
                    aux_cls = aux[3];
                }
                else
                {
                    for (int i = 1; i < aux.Length; i++)
                    {
                        if (aux[i].ToUpper() == "FROM")
                        {
                            aux_cls = aux[i + 1];
                            break;
                        }
                    }
                }

                //Preenche o Grid com as colunas da classe WMI
                //(Caso haja campos determinados, seleciona somente os campos determinados...)
                //
                //ordena, conforme entrada..
                string[] ordem = null;
                if (cls_SEL.IndexOf("*") > 0)
                {
                    var wmiClasse = new ManagementClass(aux_cls);
                    foreach (var prop in wmiClasse.Properties)
                    {
                        if ((cls_SEL.IndexOf(prop.Name) > 0) || (cls_SEL.IndexOf("*") > 0))
                        {
                            dt1.Columns.Add(prop.Name);
                        }
                    }
                }
                else
                {
                    int pos1 = cls_SEL.ToUpper().IndexOf("SELECT") + 6;
                    int pos2 = cls_SEL.ToUpper().IndexOf("FROM");
                    if (pos1 < pos2)
                    {
                        if (cls_SEL.IndexOf(",") > 0)
                        {
                            ordem = cls_SEL.Substring(pos1, (pos2 - pos1)).Trim().Split(',', ' ');
                        }
                        else
                        {
                            ordem[0] = cls_SEL.Substring(pos1, (pos2 - pos1));
                        }
                        //
                        //Preenche as colunas com os campos determinados...
                        for (int i = 0; i < ordem.Length; i++)
                        {
                            if (ordem[i] != "")
                            {
                                dt1.Columns.Add(ordem[i]);
                            }
                        }
                    }
                }

                //Preenche o Grid com os valores da classe WMI
                foreach (ManagementObject mo in moc)
                {
                    DataRow dr = dt1.NewRow();

                    System.Management.PropertyDataCollection pdc = mo.Properties;
                    foreach (System.Management.PropertyData pd in pdc)
                    {
                        dr[pd.Name] = pd.Value;
                    }

                    dt1.Rows.Add(dr);
                }
                //
                //
                return(dt1);
            }
            catch (UnauthorizedAccessException)
            {
                return(null);
            }
            catch (ManagementException)
            {
                return(null);
            }
        }
示例#12
0
        public static DataTable GroupMembers(string srv, string usr, string pwd)
        {
            StringBuilder result = new StringBuilder();

            try
            {
                //
                MPSfwk.Model.Server s = new MPSfwk.Model.Server();
                s.IPHOST  = srv;
                s.USUARIO = usr;
                s.SENHA   = pwd;
                ManagementScope  ms = scopeMgmt(false, s);
                ObjectGetOptions objectGetOptions = new ObjectGetOptions();
                //
                string targethost = "";
                string groupname  = "";
                string aux_qry    = "";
                if ((srv.IndexOf(".") == -1) && (srv.ToUpper() != "LOCALHOST"))
                {
                    aux_qry = "select * from Win32_Group Where Domain = '" + srv + "'";
                }
                else
                {
                    aux_qry = "select * from Win32_Group Where LocalAccount = True";
                }
                //
                //MPS teste - 10/out
                //
                Console.WriteLine("DEBUG - aux_qry = " + aux_qry);
                //
                DataTable dt_aux = dtlistaClasse("Win32_Group",
                                                 aux_qry,
                                                 srv,
                                                 usr,
                                                 pwd);
                //
                //Cria tabela para preencher os campos
                DataTable dt1 = new DataTable();
                dt1.TableName = "GroupMembers";
                dt1.Columns.Add("Domain");
                dt1.Columns.Add("Group Name");
                dt1.Columns.Add("Users");
                //
                foreach (DataRow drow in dt_aux.Rows)
                {
                    //
                    DataRow dr = dt1.NewRow();
                    //
                    targethost = drow["Domain"].ToString();
                    groupname  = drow["Name"].ToString();

                    StringBuilder qs = new StringBuilder();
                    qs.Append("SELECT PartComponent FROM Win32_GroupUser WHERE GroupComponent = \"Win32_Group.Domain='");
                    qs.Append(targethost);
                    qs.Append("',Name='");
                    qs.Append(groupname);
                    qs.AppendLine("'\"");
                    ObjectQuery query = new ObjectQuery(qs.ToString());
                    ManagementObjectSearcher   searcher        = new ManagementObjectSearcher(ms, query);
                    ManagementObjectCollection queryCollection = searcher.Get();
                    foreach (ManagementObject m in queryCollection)
                    {
                        ManagementPath path = new ManagementPath(m["PartComponent"].ToString());
                        {
                            String[] names = path.RelativePath.Split(',');
                            result.Append(names[0].Substring(names[0].IndexOf("=") + 1).Replace("\"", " ").Trim() + "\\");
                            result.AppendLine(names[1].Substring(names[1].IndexOf("=") + 1).Replace("\"", " ").Trim() + " ; ");
                        }
                    }
                    //Console.WriteLine("Domain =  " + targethost + " Name = " + groupname + " Users = " + result.ToString());
                    dr["Domain"]     = targethost;
                    dr["Group Name"] = groupname;
                    dr["Users"]      = result.ToString();
                    dt1.Rows.Add(dr);
                    //
                    result = new StringBuilder();
                }
                return(dt1);
                //
            }
            catch (Exception e)
            {
                Console.WriteLine("|!| GroupMembers Error - " + e.Message);
                return(null);
            }
        }
示例#13
0
        protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            //Pega o usuário logado...
            MembershipUser      currentUser = Membership.GetUser();

            //Seta os dados para conn WMI...
            MPSfwk.Model.Server s           = new MPSfwk.Model.Server();
            s.IPHOST                        = ConfigurationManager.AppSettings["ServerAT"];
            s.USUARIO                       = currentUser.UserName;
            s.SENHA                         = currentUser.GetPassword();

            //Pega o indice e a linha selecionada
            int                 index       = Convert.ToInt32(e.CommandArgument);
            GridViewRow         row         = GridView1.Rows[index];

            //Chama a rotina para ler o bat e mostrar no grid2...
            int                 indnom      = GetColumnIndexByName(GridView1, "Nome");
            string              nomSel      = row.Cells[indnom].Text;
            int                 posSp1      = nomSel.IndexOf(" (");
            int                 posSp2      = nomSel.IndexOf("C:");
            string              batSel      = nomSel.Substring(posSp2);
            nomSel                          = nomSel.Substring(0, posSp1);
            batSel                          = batSel.Substring(0, batSel.IndexOf(" )"));
            string              logbat      = readfile_Click(batSel);
            string              cmd         = "";
            int                 ret         = 0;
            //
            dtSel2.Visible                  = false;
            dtSel3.Visible                  = false;
            GridView2.Visible               = false;
            TreeView1.Visible               = false;

            try
            {
                if (e.CommandName == "Del")
                {
                    //Chama a função para o Executar a Tarefa...
                    cmd = "schtasks /delete /TN \"" + nomSel + "\" /F ";
                    ret = MPSfwk.WMI.ExecuteCommand(cmd, 5000, "");
                    //
                    if (File.Exists(batSel)) { File.Delete(batSel); }
                    //
                    ListTasks(true);
                    divMessage.InnerHtml = "<span id='msg' style='color:#FF3300;font-size:Smaller;font-weight:bold;'>" + "Deletou - " + nomSel + " com sucesso! </span>";
                }
                else if (e.CommandName == "Run")
                {
                    //Chama a função para o Executar a Tarefa...
                    cmd = "schtasks /run /TN \"" + nomSel + "\" ";
                    ret = MPSfwk.WMI.ExecuteCommand(cmd, 5000, "");
                    //
                    ListTasks(true);
                    divMessage.InnerHtml = "<span id='msg' style='color:#FF3300;font-size:Smaller;font-weight:bold;'>" + "Executou - " + nomSel + " com sucesso! </span>";
                }
                else if (e.CommandName == "View")
                {
                    //
                    dtSel2.Visible = true;
                    dtSel3.Visible = true;
                    GridView2.Visible = true;

                    //Chama a rotina para gerar a lista de Servidores/Classes/Cmds e destacar os ativos...
                    dtSel2.Text = "[" + batSel + "]";

                    //Visualiza os Logs do Sistema...(Treeview)
                    dtSel3.Text = "[" + logbat + "]";
                    showLogTv(logbat);
                }
            }
            catch (Exception eg)
            {
                divMessage.InnerHtml = "<span id='msg' style='color:#FF3300;font-size:Smaller;font-weight:bold;'>" + "Ocorreu um erro: " + nomSel + " | " + batSel + " | " + cmd + " | " + " | " + ret + " | " + eg.Message + "  </span>";
            }
        }
示例#14
0
        } //OK MPS - 21/10/2014

        protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            //Pega o usuário logado...
            MembershipUser currentUser = Membership.GetUser();

            //Seta os dados para conn WMI...
            MPSfwk.Model.Server s = new MPSfwk.Model.Server();
            s.IPHOST  = ConfigurationManager.AppSettings["ServerAT"];
            s.USUARIO = currentUser.UserName;
            s.SENHA   = currentUser.GetPassword();

            //Pega o indice e a linha selecionada
            int         index = Convert.ToInt32(e.CommandArgument);
            GridViewRow row   = GridView1.Rows[index];

            //Chama a rotina para ler o bat e mostrar no grid2...
            int    indnom = GetColumnIndexByName(GridView1, "Nome");
            string nomSel = row.Cells[indnom].Text;
            int    posSp1 = nomSel.IndexOf(" (");
            int    posSp2 = nomSel.IndexOf("C:");
            string batSel = nomSel.Substring(posSp2);

            nomSel = nomSel.Substring(0, posSp1);
            batSel = batSel.Substring(0, batSel.IndexOf(" )"));
            string logbat = readfile_Click(batSel);
            string cmd    = "";
            int    ret    = 0;

            //
            dtSel2.Visible    = false;
            dtSel3.Visible    = false;
            GridView2.Visible = false;
            TreeView1.Visible = false;

            try
            {
                if (e.CommandName == "Del")
                {
                    //Chama a função para o Executar a Tarefa...
                    cmd = "schtasks /delete /TN \"" + nomSel + "\" /F ";
                    ret = MPSfwk.WMI.ExecuteCommand(cmd, 5000, "");
                    //
                    if (File.Exists(batSel))
                    {
                        File.Delete(batSel);
                    }
                    //
                    ListTasks(true);
                    divMessage.InnerHtml = "<span id='msg' style='color:#FF3300;font-size:Smaller;font-weight:bold;'>" + "Deletou - " + nomSel + " com sucesso! </span>";
                }
                else if (e.CommandName == "Run")
                {
                    //Chama a função para o Executar a Tarefa...
                    cmd = "schtasks /run /TN \"" + nomSel + "\" ";
                    ret = MPSfwk.WMI.ExecuteCommand(cmd, 5000, "");
                    //
                    ListTasks(true);
                    divMessage.InnerHtml = "<span id='msg' style='color:#FF3300;font-size:Smaller;font-weight:bold;'>" + "Executou - " + nomSel + " com sucesso! </span>";
                }
                else if (e.CommandName == "View")
                {
                    //
                    dtSel2.Visible    = true;
                    dtSel3.Visible    = true;
                    GridView2.Visible = true;

                    //Chama a rotina para gerar a lista de Servidores/Classes/Cmds e destacar os ativos...
                    dtSel2.Text = "[" + batSel + "]";

                    //Visualiza os Logs do Sistema...(Treeview)
                    dtSel3.Text = "[" + logbat + "]";
                    showLogTv(logbat);
                }
            }
            catch (Exception eg)
            {
                divMessage.InnerHtml = "<span id='msg' style='color:#FF3300;font-size:Smaller;font-weight:bold;'>" + "Ocorreu um erro: " + nomSel + " | " + batSel + " | " + cmd + " | " + " | " + ret + " | " + eg.Message + "  </span>";
            }
        } //OK MPS - 21/10/2014