2013-02-06 62 views
2

我试图从位于远程计算机上的共享(即指向另一台计算机)上的ASP.NET网站执行程序。下面是配置的样子Win32_Process在远程计算机上与目标共享创建

网站服务器=>计算机A(与分享指向)=>计算机B(EXE是这里)

如果我通过了processName z中的下列参数:\工具\ 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"]); 
    } 
+0

在那个目标机器上有一个'z:'驱动器..?还有什么帐户设置为远程机器上的用户/密码..你可以创建一个服务帐户,你正在尝试做什么..? – MethodMan

+0

是的,它指向computerB。 – Dylan

回答

2

不要传递驱动器号,但使用完整的UNC路径。

Z:驱动器是未知的,未映射给您通过“username”变量传递的用户。 (你可能认为它不是,但它不是)

相关问题