1 /// <summary> 2 /// 服务连接配置类(验证服务账号是否正确) 3 /// </summary> 4 /// <param name="remoteHost">IP地址</param> 5 /// <param name="userName">远程账号</param> 6 /// <param name="passWord">远程密码</param> 7 /// <returns></returns> 8 public bool Connect(string remoteHost, string userName, string passWord) 9 { 10 bool Flag = false; 11 Process proc = new Process(); 12 try 13 { 14 proc.StartInfo.FileName = "cmd.exe"; 15 proc.StartInfo.UseShellExecute = false; 16 proc.StartInfo.RedirectStandardInput = true; 17 proc.StartInfo.RedirectStandardOutput = true; 18 proc.StartInfo.RedirectStandardError = true; 19 proc.StartInfo.CreateNoWindow = true; 20 proc.Start(); 21 string dosLine = @"net use " + remoteHost +" /User:domain\" + userName + " " + passWord + " /PERSISTENT:YES"; 22 proc.StandardInput.WriteLine(dosLine); 23 proc.StandardInput.WriteLine("exit"); 24 while (!proc.HasExited) 25 { 26 proc.WaitForExit(1000); 27 } 28 29 string errormsg = proc.StandardError.ReadToEnd(); 30 proc.StandardError.Close(); 31 if (String.IsNullOrEmpty(errormsg)) 32 { 33 Flag = true; 34 } 35 } 36 catch (Exception ex) 37 { 38 Console.WriteLine(ex.Message); 39 throw ex; 40 } 41 finally 42 { 43 proc.Close(); 44 proc.Dispose(); 45 } 46 return Flag; 47 }
1 public static bool Ping(string remoteHost) 2 { 3 bool Flag = false; 4 Process proc = new Process(); 5 try 6 { 7 proc.StartInfo.FileName = "cmd.exe"; 8 proc.StartInfo.UseShellExecute = false; 9 proc.StartInfo.RedirectStandardInput = true; 10 proc.StartInfo.RedirectStandardOutput = true; 11 proc.StartInfo.RedirectStandardError = true; 12 proc.StartInfo.CreateNoWindow = true; 13 proc.Start(); 14 string dosLine = @"ping -n 1 " + remoteHost; 15 proc.StandardInput.WriteLine(dosLine); 16 proc.StandardInput.WriteLine("exit"); 17 while (proc.HasExited == false) 18 { 19 proc.WaitForExit(500); 20 } 21 string pingResult = proc.StandardOutput.ReadToEnd(); 22 if (pingResult.IndexOf("(0% loss)") != -1 || pingResult.IndexOf("(0% 丢失)") != -1) 23 { 24 Flag = true; 25 } 26 proc.StandardOutput.Close(); 27 } 28 catch (Exception ex) 29 { 30 } 31 finally 32 { 33 try 34 { 35 proc.Close(); 36 proc.Dispose(); 37 } 38 catch 39 { 40 } 41 } 42 return Flag; 43 }