C#实现远程windows执行命令
时间: 2024-09-26 19:07:41 浏览: 73
c#实现windows远程桌面连接程序代码
在C#中,可以使用System.Diagnostics命名空间下的Process类来实现远程Windows系统上的命令行操作。这通常通过创建进程、指定远程机器名和执行命令的方式来完成。以下是一个基本的例子,展示了如何通过名为"COMPUTER_NAME"的远程计算机执行命令:
```csharp
using System;
using System.Diagnostics;
class Program
{
static void Main(string[] args)
{
string remoteMachine = "COMPUTER_NAME";
string commandToExecute = "cmd /c dir"; // 指定要执行的命令
try
{
// 创建一个ProcessStartInfo对象,设置所需的属性
ProcessStartInfo psi = new ProcessStartInfo();
psi.UseShellExecute = false; // 避免使用默认的shell
psi.FileName = "rundll32"; // 使用rundll32来执行远程命令
psi.Arguments = $"\\pipe\\WinRM" + $"/invokescript powershell -Command {commandToExecute}"; // 远程执行PowerShell命令
psi.WorkingDirectory = ""; // 设置工作目录为当前目录
// 启动进程,并捕获输出结果
using (Process process = new Process())
{
process.StartInfo = psi;
process.Start();
// 如果需要,可以读取标准输出和错误流
process.StandardOutput.ReadToEnd(); // 或 process.StandardError.ReadToEnd() for error messages
}
}
catch (Exception ex)
{
Console.WriteLine($"Error executing remote command: {ex.Message}");
}
Console.WriteLine("Remote command execution completed.");
}
}
```
阅读全文