bat开启远程计算机程序,wmi - 尝试通过cmd shell在远程计算机上启动exe或bat文件 - 堆栈内存溢出...

博主在尝试通过C#应用程序远程启动位于另一台计算机上的批处理文件,该批处理文件仅包含一个简单命令来创建一个文本文件。尽管cmd.exe进程成功启动,但批处理文件中的命令并未实际执行,导致文本文件未被创建。博主已经排除了代码问题,因为当直接双击批处理文件时,它可以正常工作。目前,他们正在寻求解决方案以确保远程执行的批处理文件能正确运行其内部命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

从命令行运行以下命令以在远程计算机上启动进程

wmic /node:remotemachine /user:localadmin process call create "cmd.exe /c C:\temp\myfolder\test.bat"

基本上只是

echo Some Text > output.txt

我通过双击批处理文件进行了测试,并创建了output.txt文件。

批处理文件只是回显到文件。 我这样做是为了查看它是否真正运行。

cmd进程开始。 我可以在流程中看到它,但是批处理文件从未创建文本文件。

我开始尝试从C#应用程序运行EXE,但是它将为可执行文件创建进程,但是该可执行文件执行的操作从未发生。

因此,我开始测试执行相同操作的其他方式,并且遇到了相同的问题。 它会创建进程,但实际上并没有运行bat或exe。

任何帮助,将不胜感激。

我需要更具体一点

我在C#应用程序中使用以下代码:

public static void ConnectToRemoteClient(string client_machine, string target_exe )

{

var connection = new ConnectionOptions();

object[] theProcessToRun = { target_exe };

var wmiScope = new ManagementScope($@"\\{client_machine}\root\cimv2", connection);

wmiScope.Connect();

using (var managementClass = new ManagementClass(wmiScope, new ManagementPath("Win32_Process"), new ObjectGetOptions()))

{

managementClass.InvokeMethod("Create", theProcessToRun );

}

}

称为:

使用以下语法调用它:

string exe = string.Format(@"cmd.exe /c C:\temp\Myfolder\test.bat");

ConnectToRemoteClient("ClientMachine", exe);

它将启动该过程,并且我看到cmd.exe正在运行,但是test.bat动作从未发生。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值