我正在使用 WMI(C# 代码)在远程服务器上运行控制台应用程序
我想捕获该过程的输出。
有人可以帮我这样做吗?
设想:
我有一个网页,用户将在其中提供服务器详细信息。当用户点击提交时,我想调用远程服务器上的应用程序并传递参数。远程服务器上的应用程序将执行该操作并返回输出(输出可以是数字、字符串或布尔值)。
根据输出,我需要提示用户提供更多详细信息或显示错误。
object[] processToRun = new[] { "\"Path to exe\" \"Param1\" \"Param2\"" };
ConnectionOptions connection = new ConnectionOptions();
connection.Username = "username";
connection.Password = "password";
ManagementScope wmiScope = new ManagementScope(String.Format("\\\\{0}\\root\\cimv2", "ServerName"), connection);
ManagementClass wmiProcess = new ManagementClass(wmiScope, new ManagementPath("Win32_Process"), new ObjectGetOptions());
wmiProcess.InvokeMethod("Create", processToRun);
我想得到这个的输出。
临时解决方案:但不起作用
作为一个临时解决方案,我添加了代码以在每个人都可以访问的共享路径上创建一个日志文件。但是在这里我又遇到了问题,当我在远程服务器上调用 exe 写入共享路径时,我总是收到错误消息“拒绝访问”。但是当我从服务器本身运行 exe 时,它工作正常。