我可以使用 WMI 连接到远程计算机。我想在远程计算机的cmd中运行一些命令,然后在代码中使用这些输出。首先我可以运行cmd命令,但我无法访问输出。我可以在本地机器上看到它们吗? 因为这个问题,我尝试将输出存储到远程机器上的文件中,然后从本地机器读取该文件。但似乎无法完成。 我知道有一些其他工具而不是WMI,但我想知道我可以使用WMI将cmd命令的输出存储在变量中吗?
此代码在tmp_dr.txt中保存cmd命令的输出,然后尝试访问存在tmp_dr.txt的路径但发生异常不支持给定路径的格式。< / strong>当我使用C $而不是c:另一个例外是:用户名或密码不正确。但是我成功连接到远程PC并创建了tmp_dr.txt。
ip = "172.17.9.2";
username = "FB\\****";
password = "****";
port = 22;
// var processToRun = new[] { "cmd.exe" };
var connection = new ConnectionOptions();
connection.Username = username;
connection.Password = password;
var wmiScope = new ManagementScope(String.Format("\\\\{0}\\root\\cimv2", "FB"), connection);
var wmiProcess = new ManagementClass(wmiScope, new ManagementPath("Win32_Process"), new ObjectGetOptions());
try
{
ManagementBaseObject inParams = wmiProcess.GetMethodParameters("Create");
inParams["CommandLine"] = "cmd /c ls > c:\\tmp_dr.txt";
inParams["CurrentDirectory"] = @"c:\windows\system32";
var result = wmiProcess.InvokeMethod("Create", inParams, null);
FileStream sr = new FileStream(@"\\FB\c:\tmp_dr.txt",FileMode.Open);
string line = sr.Read()
}