Exemplo n.º 1
0
        /// <summary>
        /// 给计划名赋予执行内容
        /// </summary>
        private void loadPlanMethod()
        {
            methodDic.Add("检查更新", delegate()
            {
                Tools.checkUpdate(db, mainFrm, true);
            });
            methodDic.Add("iNode激活", delegate()
            {
            });
            methodDic.Add("网络连接状态", delegate()
            {
                NetworkDoctorBackObj backObj = this.mainFrm.networkDoctor.checkNetwork();

                if (!backObj.Status)
                {
                    netConnectUI("中断");
                    this.mainFrm.networkDoctor.start();
                }
                else
                {
                    netConnectUI("良好");
                    this.mainFrm.netStatus_lab.Text = "良好";
                }
            });
            methodDic.Add("获取用户注册信息", delegate()
            {
                Tools.getUserRegInfo(mainFrm.pm.getSelectedNetCard().Ip, db);
            });
        }
Exemplo n.º 2
0
        /// <summary>
        /// 检查网卡是否被禁用或者不存在
        /// </summary>
        /// <returns></returns>
        public NetworkDoctorBackObj checkHandware()
        {
            statusUI(0, "start", true);
            refreshUI(0, "msg", "开始检查");
            Thread.Sleep(1000);
            NetworkDoctorBackObj backObj = new NetworkDoctorBackObj("handware");

            backObj.Status = true;
            //如果没有找到网卡
            if (this.netCardDic.Count == 0)
            {
                refreshUI(0, "msg", "未发现物理网卡,请检查交换机或重装iNode");
                backObj.addMsg("未发现物理网卡\r\n");
                backObj.addSugest("此种故障一般由iNode引起,请先卸载iNode,卸载密码www.h3c.com。卸载后重启,再重新安装iNode后,再次运行本工具..");
                statusUI(0, "end", false);
                backObj.Status = false;
                //如果网卡被禁用===========================
            }
            else
            {
                backObj.addMsg("网卡正常\r\n");
                refreshUI(0, "msg", "正常");
                statusUI(0, "end", true);
                backObj.Status = true;
            }

            TaskStepCallBack(backObj);
            return(backObj);
        }
Exemplo n.º 3
0
        /// <summary>
        /// 检查iNode状态
        /// </summary>
        /// <returns></returns>
        public NetworkDoctorBackObj checkiNode()
        {
            refreshUI(3, "msg", "开始检查");
            statusUI(3, "start", true);
            Thread.Sleep(1000);
            NetworkDoctorBackObj backObj = new NetworkDoctorBackObj("iNode");

            backObj.Status = true;
            refreshUI(3, "msg", "判断iNode运行状态");
            if (Process.GetProcessesByName("iNode Client").Length != 0)
            {
                refreshUI(3, "msg", "iNode正在运行,判断网络是否畅通");
                if (checkNetwork().Status)
                {
                    refreshUI(3, "msg", "正常");
                    statusUI(3, "end", true);
                }
                else
                {
                    refreshUI(3, "msg", "iNode状态可能异常,尝试重启iNode连接..");
                    Process.GetProcessesByName("iNode Client")[0].Kill();
                    Process.Start(defaultPath + @"iNode\iNode Client\iNode Client.exe");
                    refreshUI(3, "msg", "iNode已重启,等待返回网络通畅情况检测结果..");
                    Thread.Sleep(5000);
                    if (checkNetwork().Status)
                    {
                        refreshUI(3, "msg", "正常");
                        statusUI(3, "end", true);
                    }
                    else
                    {
                        refreshUI(3, "msg", "失败,请确认iNode账号密码是否正确");
                        statusUI(3, "end", false);
                    }
                }
            }
            else
            {
                Process.Start(defaultPath + @"iNode\iNode Client\iNode Client.exe");
                refreshUI(3, "msg", "iNode未运行,重新启动iNode..");
                Thread.Sleep(5000);
                refreshUI(3, "msg", "iNode已重启,等待返回网络通畅情况检测结果..");
                if (checkNetwork().Status)
                {
                    refreshUI(3, "msg", "正常");
                    statusUI(3, "end", true);
                }
                else
                {
                    refreshUI(3, "msg", "失败,请确认iNode账号密码是否正确");
                    statusUI(3, "end", false);
                }
            }

            //
            TaskStepCallBack(backObj);
            return(backObj);
        }
Exemplo n.º 4
0
 private void taskStepCallBack(NetworkDoctorBackObj backObj)
 {
     if (InvokeRequired)
     {
         this.Invoke(new AsynUpdateUI(delegate()
         {
             //如果检查未通过,说明有问题,直接停止下面的检查
             if (!backObj.Status)
             {
             }
         }));
     }
 }
Exemplo n.º 5
0
        public NetworkDoctorBackObj checkVRV()
        {
            refreshUI(4, "msg", "开始检查");
            statusUI(4, "start", true);
            Thread.Sleep(1000);
            NetworkDoctorBackObj backObj = new NetworkDoctorBackObj("iNode");

            backObj.Status = true;
            refreshUI(4, "msg", "判断北信源运行状态");
            if (Process.GetProcessesByName("vpengine").Length != 0 || Process.GetProcessesByName("vpengine64").Length != 0)
            {
                refreshUI(4, "msg", "北信源正在运行,判断网络是否畅通");
                if (checkNetwork().Status)
                {
                    refreshUI(4, "msg", "正常");
                    statusUI(4, "end", true);
                }
                else
                {
                    refreshUI(4, "msg", "失败,北信源状态异常,请联系管理员解决。");
                    statusUI(4, "end", false);
                }
            }
            else
            {
                Process.Start(defaultPath + @"VRV\CEMS\vpengine.exe");
                refreshUI(4, "msg", "北信源未运行,重新启动北信源..");
                Thread.Sleep(5000);
                refreshUI(4, "msg", "北信源已重启,等待返回网络通畅情况检测结果..");
                if (checkNetwork().Status)
                {
                    refreshUI(4, "msg", "正常");
                    statusUI(4, "end", true);
                }
                else
                {
                    refreshUI(4, "msg", "失败,北信源状态异常,请联系管理员解决。");
                    statusUI(4, "end", false);
                }
            }

            //
            TaskStepCallBack(backObj);
            return(backObj);
        }
Exemplo n.º 6
0
        /// <summary>
        /// 检查DNS是否设置正确
        /// </summary>
        /// <returns></returns>
        public NetworkDoctorBackObj checkDNS()
        {
            NetworkDoctorBackObj backObj = new NetworkDoctorBackObj("dns");

            backObj.Status = true;
            statusUI(2, "start", true);
            refreshUI(2, "msg", "开始检查");
            Thread.Sleep(1000);
            if (!this.netCard.isEnableDns(sysConfigDic["defaultDNS1"], sysConfigDic["defaultDNS2"]))
            {
                refreshUI(2, "msg", "发现本地dns地址设置错误..");
                backObj.addMsg("发现本地dns地址设置错误..\r\n");
                backObj.Status = false;
                refreshUI(2, "msg", "尝试从本地恢复正确的DNS配置..");
                backObj.addMsg("尝试从本地恢复正确的DNS配置..\r\n");
                this.netCard.setDns(sysConfigDic["defaultDNS1"], sysConfigDic["defaultDNS2"]);
                refreshUI(2, "msg", "检查DNS是否设置成功..");
                backObj.addMsg("检查DNS是否设置成功..\r\n");
                this.netCard = refreshNetCard(this.netCard.Name);
                if (!this.netCard.isEnableDns(sysConfigDic["defaultDNS1"], sysConfigDic["defaultDNS2"]))
                {
                    refreshUI(2, "msg", "DNS地址设置失败..");
                    backObj.addMsg("DNS地址设置失败..\r\n");
                    backObj.addSugest("请尝试手动设置DNS地址\r\n");
                    refreshUI(2, "msg", "失败");
                    statusUI(2, "end", false);
                }
                else
                {
                    refreshUI(2, "msg", "DNS地址设置成功!");
                    statusUI(2, "end", true);
                    refreshUI(2, "msg", "正常");
                    backObj.addMsg("DNS地址正常\r\n");
                    backObj.Status = true;
                }
            }
            else
            {
                backObj.addMsg("DNS地址正常\r\n");
                refreshUI(2, "msg", "正常");
                statusUI(2, "end", true);
            }
            TaskStepCallBack(backObj);
            return(backObj);
        }
Exemplo n.º 7
0
        private void btn_changeIp_Click(object sender, EventArgs e)
        {
            cmdM cmdm = () => pm.changeIp();

            this.BeginInvoke(cmdm);
            MessageBox.Show("修改成功!");
            //重新读取面板
            NetCard netcard = pm.readIpPanel();

            //判断更改后的IP能否ping通,如果能,则保存新的ip配置
            System.Threading.Timer threadTimer = new System.Threading.Timer(new System.Threading.TimerCallback(delegate {
                NetworkDoctorBackObj backObj = networkDoctor.checkNetwork(netcard);
                if (netcard.isEnableIp() && backObj.Status)
                {
                    Tools.updatePcInfo(db, netcard);
                }
            }), null, 8000, 0);
        }
Exemplo n.º 8
0
        /// <summary>
        /// 检查网络
        /// </summary>
        /// <returns></returns>
        public NetworkDoctorBackObj checkNetwork(NetCard netcard)
        {
            NetworkDoctorBackObj backObj = new NetworkDoctorBackObj("network");

            backObj.Status = true;
            Dictionary <string, string> connectNetTestResultDic = netCard.connectNetTest(this.pingIpDic);

            foreach (KeyValuePair <string, string> kv in connectNetTestResultDic)
            {
                if (kv.Value != "成功")
                {
                    backObj.Status = false;
                    backObj.addMsg("网络状态异常\r\n");
                    break;
                }
            }
            TaskStepCallBack(backObj);
            return(backObj);
        }
Exemplo n.º 9
0
        /// <summary>
        /// 执行自动检查程序
        /// </summary>
        public void autoCheck()
        {
            NetworkDoctorBackObj reObj = null;

            //开始时需要渲染的控件
            TaskStart();
            //进行逐个检查

            //1.先检查硬件连接是否正确
            reObj = checkHandware();
            if (!reObj.Status)
            {
                return;
            }
            //2.检查ip地址是否正确
            reObj = checkIp();
            if (!reObj.Status)
            {
                return;
            }
            //3.检查dns是否正确
            reObj = checkDNS();
            if (!reObj.Status)
            {
                return;
            }
            //4.检查iNode是否正常
            reObj = checkiNode();
            if (!reObj.Status)
            {
                return;
            }
            //5.检查北信源是否正常
            reObj = checkVRV();
            if (!reObj.Status)
            {
                return;
            }
            //结束时要渲染的控件
            TaskFinish();
        }
Exemplo n.º 10
0
        /// <summary>
        /// 检查IP地址是否设置正确
        /// </summary>
        /// <returns></returns>
        public NetworkDoctorBackObj checkIp()
        {
            NetworkDoctorBackObj backObj = new NetworkDoctorBackObj("ip");

            backObj.Status = true;
            statusUI(1, "start", true);
            refreshUI(1, "msg", "开始检查");
            Thread.Sleep(1000);

            //判断是否有NetCard符合ip规则
            string  enableNetCardName = "";
            NetCard enableNetCard     = null;

            foreach (KeyValuePair <string, NetCard> kv in netCardDic)
            {
                NetCard netCard = kv.Value;
                if (netCard.isEnableIp())
                {
                    enableNetCardName = kv.Key;
                    enableNetCard     = kv.Value;
                }
            }

            //检查IP地址是否可用
            refreshUI(1, "msg", "检查IP地址是否可用");
            if (enableNetCardName == "")
            {
                refreshUI(1, "msg", "发现本地ip地址设置错误..");
                backObj.addMsg("发现本地ip地址设置错误..\r\n");
                backObj.Status = false;
                if (this.localIpDic != null && this.localIpDic["netCardName"] != "")
                {
                    refreshUI(1, "msg", "尝试从本地恢复正确的IP配置..");
                    backObj.addMsg("尝试从本地恢复正确的IP配置..\r\n");
                    if (this.netCardDic.ContainsKey(this.localIpDic["netCardName"]))
                    {
                        this.netCard = this.netCardDic[this.localIpDic["netCardName"]];
                        this.netCard.setIp(this.localIpDic["ip"], this.localIpDic["mask"], this.localIpDic["gateway"]);
                        refreshUI(1, "msg", "检查IP是否设置成功..");
                        backObj.addMsg("检查IP是否设置成功..\r\n");
                        this.netCard = refreshNetCard(this.netCard.Name);
                        if (!this.netCard.isEnableIp())
                        {
                            refreshUI(1, "msg", "IP地址设置失败..");
                            backObj.addMsg("IP地址设置失败..\r\n");
                            backObj.addSugest("请尝试手动设置IP地址\r\n");
                            statusUI(1, "end", false);
                        }
                        else
                        {
                            refreshUI(1, "msg", "IP地址设置成功!");
                            statusUI(1, "end", true);
                            backObj.addMsg("IP地址正常\r\n");
                            backObj.Status = true;
                        }
                    }
                    else
                    {
                        refreshUI(1, "msg", "本地IP配置未存储,无法恢复");
                        Thread.Sleep(1000);
                        refreshUI(1, "msg", "失败");
                        statusUI(1, "end", false);
                    }
                }
            }
            //检查子网掩码是否可用
            //refreshUI(1, "msg", "检查子网掩码是否可用");
            //if (enableNetCard.isEnableMask())
            //{
            //    refreshUI(1, "msg", "子网掩码设置错误,尝试重新设置子网掩码..");
            //    backObj.addMsg("子网掩码设置错误,尝试重新设置子网掩码..\r\n");
            //    enableNetCard.setIp(enableNetCard.Ip, "255.255.255.0",enableNetCard.Gateway);
            //    refreshUI(1, "msg", "检查子网掩码是否设置成功..");
            //    backObj.addMsg("检查子网掩码是否设置成功..\r\n");
            //    this.netCard = refreshNetCard(enableNetCardName);
            //    if (!this.netCard.isEnableIp())
            //    {
            //        refreshUI(1, "msg", "子网掩码设置失败..");
            //        backObj.addMsg("子网掩码设置失败..\r\n");
            //        backObj.addSugest("请尝试手动设置子网掩码\r\n");
            //        statusUI(1, "end", false);
            //        return backObj;
            //    }
            //    else
            //    {
            //        refreshUI(1, "msg", "子网掩码设置成功!");
            //        statusUI(1, "end", true);
            //        backObj.addMsg("子网掩码正常\r\n");
            //        backObj.Status = true;
            //    }
            //}
            //检查默认网关是否可用
            refreshUI(1, "msg", "检查默认网关是否正确");
            if (enableNetCard != null)
            {
                string[] ipArr = enableNetCard.Ip.Split(new char[] { '.' });
                ipArr[3] = "1";
                string theoryGateway = string.Join(".", ipArr);
                if (enableNetCard.isEnableGateway())
                {
                    refreshUI(1, "msg", "网关设置错误,尝试重新设置网关..");
                    backObj.addMsg("网关设置错误,尝试重新设置网关..\r\n");
                    enableNetCard.setIp(enableNetCard.Ip, enableNetCard.Mask, theoryGateway);
                    refreshUI(1, "msg", "检查网关是否设置成功..");
                    backObj.addMsg("检查网关是否设置成功..\r\n");
                    this.netCard = refreshNetCard(enableNetCardName);
                    if (!this.netCard.isEnableGateway())
                    {
                        refreshUI(1, "msg", "网关地址设置失败..");
                        backObj.addMsg("网关地址设置失败..\r\n");
                        backObj.addSugest("请尝试手动设置网关地址\r\n");
                        statusUI(1, "end", false);
                        return(backObj);
                    }
                    else
                    {
                        refreshUI(1, "msg", "网关地址设置成功!");
                        statusUI(1, "end", true);
                        backObj.addMsg("网关地址正常\r\n");
                        backObj.Status = true;
                    }
                }
            }

            refreshUI(1, "msg", "正常");
            statusUI(1, "end", true);
            backObj.addMsg("IP地址正常\r\n");
            //任务完成了界面的返回
            TaskStepCallBack(backObj);
            return(backObj);
        }