C# 关于用进程执行cmd的net use的问题

问题描述

C# 关于用进程执行cmd的net use的问题
public string Connect(string remoteHost string userName string passWord)
{
string s = """";
if (!Ping(remoteHost))
{
return s;
}
bool Flag = true;
Process proc = new Process();
try
{
proc.StartInfo.FileName = ""cmd.exe"";
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardInput = true;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.RedirectStandardError = true;
proc.StartInfo.CreateNoWindow = true;
proc.Start();
string dosLine = @""net use "" + remoteHost + "" "" + passWord + "" "" + "" /user:"" + userName + "">NUL"";
proc.StandardInput.WriteLine(dosLine);
proc.StandardInput.WriteLine(""exit"");
while (proc.HasExited == false)
{
proc.WaitForExit(1000);
}
string errormsg = proc.StandardError.ReadToEnd();
if (errormsg != """")
{
Flag = false;
}
proc.StandardError.Close();
}
catch (Exception ex)
{
return ex.Message;
Flag = false;
}
finally
{
try
{
proc.Close();
proc.Dispose();
}
catch
{
}
}
return s;
}
我需要把 文件通过A服务器的WebService中的这个方法上传到B服务器中
现在上传是没问题而是上传之后把上面的代码注释掉 依然可以访问并不会出现那个
未知的用户名和密码""这个错误用cmd执行net use 也没看到这个的连接 进程也关闭了
有什么办法可以让清理掉这个类似于 记住账户名密码 的功能?
try
{
///定义并实例化一个内存流,以存放提交上来的字节数组。
MemoryStream m = new System.IO.MemoryStream(infbytes);
//取出存放地址,可以通过数据库里存放,不用定死了。此处只是做DEMO。
string strFile = @""192.168.1.134E$"" + FileName;
num = ""//取出存放地址,可以通过数据库里存放,不用定死了。此处只是做DEMO。"";
///定义实际文件对象,保存上载的文件。
t_BC_Emp pt_BC_Emp = new t_BC_Emp();
//if (pt_BC_Emp.Ping(""192.168.1.134""))
//{
// num = pt_BC_Emp.Connect(""192.168.1.134""XH""1eqweer"");
// if (num == """")
// {
FileStream fl = new System.IO.FileStream(strFile FileMode.OpenOrCreate FileSystemRights.Modify FileShare.ReadWrite 8 FileOptions.None);
num = ""定义实际文件对象,保存上载的文件。"";
//FileStream fl = File.Create(strFile + FileName);
///把内内存里的数据写入物理文件
m.WriteTo(fl);
m.Close();
fl.Close();
m = null;
fl = null;
//}
//}
return num;
}

解决方案

不需要这么做,直接调用wnetaddconnection2 api即可

时间: 2024-09-15 17:14:09

C# 关于用进程执行cmd的net use的问题的相关文章

.Net执行cmd获取系统信息

public string Test() { Stopwatch w = new Stopwatch(); w.Start(); StringBuilder sb = new StringBuilder(); string str = RunCmdForJobs("systeminfo"); string[] lines = str.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntrie

asp.net/asp执行cmd实现方法 与代码

先来看一款asp教程的做法 shell 函数 命名空间:microsoft.visualbasic 模块:interaction 程序集:microsoft visual basic .net 运行库(位于 microsoft.visualbasic.dll 中) 运行一个可执行程序,并且如果该程序仍然在运行,则返回一个包含该程序的进程 id 的整数. public function shell( _ byval pathname as string, _ optional byval styl

system 启动进程执行socket 出错

问题描述 system 启动进程执行socket 出错 我在程序中开了一个监听端口,后面通过system执行启动一个进程,该进程会复制父进程的资源, 导致我从该端口返回消息时,连接的客户端收不到我的回复消息,不过我能够网卡中抓到该消息,后面通过修改fcntl(fdt, F_SETFD, FD_CLOEXEC)就能够修复该问题,客户端就能收到我的消息,我不明白为什么能在网卡上找到发出的数据包,怎么客户端收不到呢, 解决方案 http://blog.csdn.net/jeffbao/article/

Java 进程执行外部程序造成阻塞的一种原因_java

查了好多资料,差点就动手翻Java源码了,最后结合一篇文章(忘记出处了),想到了输出流会阻塞进程执行. Java进程执行有一个输入流,两个输出流(相对于外部程序).当两个输出流有内容输出,而Java执行程序没有及时清空输出流时就会阻塞进程. 现贴出代码,希望能帮助到有需要的同行: 复制代码 代码如下: /**  * pdf转swf函数  * @param path 输入输出文件路径  * @param inputFileName 输入文件名  * @param outputFileName 输出

system命令-在代码中执行cmd命令如何不显示cmd

问题描述 在代码中执行cmd命令如何不显示cmd 在代码中执行system命令时,总有黑框一闪而过,怎样可以让他完全不显示 解决方案 shellexecute启动,showwindow参数设置为SW_HIDE 解决方案二: 直接执行那个命令,不要加上cmd.当然前提是那个命令本身不创建额外的控制台. 解决方案三: 如果用shellexecute执行cmd命令,的最后一个参数设置为SW_HIDE,隐藏窗口.shellexecuteex,createprocess也都可以设置 解决方案四: @ech

vc++-VC 执行cmd dos命令时 无法删除目录 和自身,自己手动打开生成的cmd 时删除成功

问题描述 VC 执行cmd dos命令时 无法删除目录 和自身,自己手动打开生成的cmd 时删除成功 生成的 cmd文件内容 rd .aaData del .aauninst.exe rd .aa del dele.cmd WinExec(strMyDir,SW_SHOW); //cmd 执行了 看到执行界面了 但是没有删除 ShellExecute(NULL,"open",strMyDir,NULL,NULL,SW_SHOW); // 这个函数 一样 cmd 执行了 看到执行界面了

代码-js 执行cmd 命令 现在用js可以执行单条命令 怎么用js执行多条cmd命令呢

问题描述 js 执行cmd 命令 现在用js可以执行单条命令 怎么用js执行多条cmd命令呢 如代码 var wshshell=new ActiveXObject("Wscript.Shell"); wshshell.Run("命令"); 这样dos命令就被执行了 但是我要执行 @ECHO OFF IF EXIST 1.TXT DEL 1.TXT systeminfo >>1.TXT START 1.TXT 把它们放在一起执行 怎么写呢? 不能用批处理

c#-C#执行cmd传入ipconfig怎么没有效果

问题描述 C#执行cmd传入ipconfig怎么没有效果 try { Process.Start("cmd.exe","ipconfig"); } catch (Exception) { throw; } 解决方案 http://www.cnblogs.com/Ren_Lei/archive/2010/08/07/1794576.html 解决方案二: Process.Start("cmd.exe","/k ipconfig"

java-客户端操作服务器帮你执行cmd?

问题描述 客户端操作服务器帮你执行cmd? java执行cmd命令导出dmp是必须有oracle客户端的.软件客户端不可能每个用户都安装oracle客户端.我就想可以再客户端操作服务器然后让服务器帮你导出dmp然后再从服务器上把文件下载下来.导入也是同样的把dmp上传到服务器然后让服务器帮你执行cmd命令导入能不能行得通?具体怎么实现 .急急急!!! 解决方案 Path中没有配置系统文件 或者是删除了 解决方案二: 不装 oracle客户端也是可以访问的,客户端程序拷贝一些动态库就可以了,你百度