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); } }
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); } }
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); } }
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; }
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); }
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); } }
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; } }
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; } }
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; } }
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; } }
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); } }
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); } }
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 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