Win32_Process在共享上具有目标的远程计算机上创建
本文关键字:创建 计算机 目标 Process 共享 Win32 | 更新日期: 2023-09-27 17:58:15
我正在尝试从ASP执行程序。NET网站,该网站位于远程计算机上的共享(指向另一台计算机)上。以下是的配置
网站服务器=>计算机A(带有指向的共享)=>计算机B(exe在这里)
如果我为processName z传递以下参数:''tools''bin''myprogram.exe,我会得到一个未找到路径的返回代码。如果我为进程名''''computerB''tools''bin''myprogram.exe传递以下参数,我会收到拒绝访问错误。
private static int CreateRemoteProcess(string serverName, string username, string password, string processName, params string[] arguments)
{
var connection = new ConnectionOptions
{
Username = username,
Password = password
};
var scope = new ManagementScope(@"''" + serverName + @"'root'cimv2", connection);
using (var managementClass = new ManagementClass(scope,
new ManagementPath("Win32_Process"),
new ObjectGetOptions()))
{
var inputParams = managementClass.GetMethodParameters("Create");
if (arguments != null)
{
foreach (var param in arguments)
{
processName += " " + param;
}
}
inputParams["CommandLine"] = processName;
var outParams = managementClass.InvokeMethod("Create",
inputParams,
new InvokeMethodOptions());
outParams = managementClass.InvokeMethod("Create", inputParams, null);
var ret = Convert.ToInt32(outParams["ReturnValue"]);
return Convert.ToInt32(outParams["ProcessId"]);
}
不要传递驱动器号,而是使用完整的UNC路径。
Z: 驱动器是未知的,并且没有为您使用"username"变量传递的用户映射。(你可能认为是,但事实并非如此)