gpt4 book ai didi

c# - Win32_Process 在远程计算机上创建,目标位于共享上

转载 作者:太空宇宙 更新时间:2023-11-03 11:09:00 26 4
gpt4 key购买 nike

我正在尝试从位于远程计算机共享(指向另一台计算机)上的 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:驱动器未知且未映射到您使用“用户名”变量传递的用户。 (你可能认为它是但它不是)

关于c# - Win32_Process 在远程计算机上创建,目标位于共享上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14736905/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com