在Windows远程服务器中运行命令,并在C#.NET中获取控制台输出
发布时间:2020-12-14 01:53:21 所属栏目:Windows 来源:网络整理
导读:我有一个远程服务器名称( Windows),用户名和密码. 使用C#.Net,我想在远程服务器上运行命令并返回控制台输出 有没有办法在C#中做到这一点? 我能够使用WMI使用以下代码(部分)运行命令,但没有获得控制台输出的运气.我只能取回进程ID. ObjectGetOptions objectG
我有一个远程服务器名称(
Windows),用户名和密码.
使用C#.Net,我想在远程服务器上运行命令并返回控制台输出 有没有办法在C#中做到这一点? 我能够使用WMI使用以下代码(部分)运行命令,但没有获得控制台输出的运气.我只能取回进程ID. ObjectGetOptions objectGetOptions = new ObjectGetOptions(); ManagementPath managementPath = new ManagementPath("Win32_Process"); ManagementClass processClass = new ManagementClass(scope,managementPath,objectGetOptions); ManagementBaSEObject inParams = processClass.GetMethodParameters("Create"); inParams["CommandLine"] = "cmd.exe /c "+ mycommand; ManagementBaSEObject outParams = processClass.InvokeMethod("Create",inParams,null); 有任何想法吗? 解决方法
这个功能是我在经过一些研究后得出的.希望它可以帮助别人.
public string executeCommand(string serverName,string username,string password,string domain=null,string command) { try { System.Diagnostics.Process process = new System.Diagnostics.Process(); System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo(); startInfo.RedirectStandardOutput = true; startInfo.UseShellExecute = false; startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; startInfo.FileName = "cmd.exe"; if (null != username) { if (null != domain) { startInfo.Arguments = "/C "psexec.exe \" + serverName + " -u " + domain+""+username + " -p " + password + " " + command + """; } else { startInfo.Arguments = "/C "psexec.exe \" + serverName + " -u " + username + " -p " + password + " " + command + """; } } else { startInfo.Arguments = "/C "utilspsexec.exe "+serverName+" "+ command + """; } process.StartInfo = startInfo; process.Start(); process.WaitForExit(); if (process.ExitCode == 0 && null != process && process.HasExited) { return process.StandardOutput.ReadToEnd(); } else { return "Error running the command : "+command; } } catch (Exception ex) { throw ex; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- windows-server-2008 – 如何找出服务器重启的原因?
- ShinyApp:Peer连接重置
- 如何关闭Windows Azure的“此Windows副本不是正版”消息?
- wcf – 代理类更改参数的顺序,将param作为第一个输出
- 重新安装前最好的免费工具来映像Windows XP驱动器?
- windows-server-2008-r2 – Windows任务计划程序 – 结果代
- group-policy – 是否可以将Windows Update配置为通过组策略
- windows-vista – 使用托管代码调用死亡蓝屏
- win10怎么录制电脑屏幕 电脑录制视频
- windows – 如何在Matlab 2009b中增加数组块并解决内存不足
推荐文章
站长推荐
- 批处理文件 – 以编程方式更改和刷新图标(无需重
- 如何防止Windows在构建解决方案时进入睡眠状态?
- windows-server-2008 – Subversion Edge LDAP(需
- windows – 如何在Google Chrome中标题栏中绘制按
- windows-server-2008 – 为什么我不能浏览我的D:
- UEFI计算机上的Windows和Linux的映像(例如,使用C
- windows – 如何使Process Explorer的功能“替换
- 远程连接windows server,热键被占用,怎么处理?
- Dell OpenManage的功能是否可以被Microsoft Syst
- windows-server-2012 – Robocopy – 覆盖所有文
热点阅读