我有一台安装了驱动程序OpenEdge 10.1B的远程计算机(让我们称之为目标)(与Progress数据库通信)。
我在这台通过驱动程序连接到Progress数据库的远程计算机上有一个exe。当我使用我的Windows帐户登录此计算机(rdp)时 然后我测试了这个可执行文件,我可以看到它连接到数据库成功。
我需要做的是从机器远程执行此exe,将其命名为 Source 。为此,我使用PsTools。 请注意,我执行使用我的Windows帐户记录的此代码(与机器 Target 相同的域) 下面是我用来执行此文件的c#代码。
public static bool Execute(List<string> tablesNames)
{
//the process to start
const string processName = @"C:\script\MyProgram.exe";
var serverName = "theServerName";
//params for MyProgram.exe
var param = "-s " + String.Join(" ", tablesNames);
try
{//example: c:\pstools\psexec.exe \\theServerName C:\script\MyProgram.exe -s tableName1 tableName2
//Start the process
ProcessStartInfo info = new ProcessStartInfo("C:\\PsTools");
info.LoadUserProfile = true;
info.FileName = @"C:\PsTools\psexec.exe";
info.Arguments = $@"\\{serverName} {processName} " + param;
info.RedirectStandardOutput = true;
info.UseShellExecute = false;
Process p = Process.Start(info);
Console.WriteLine( "Program " + processName + " was started correctly.");
return true;
}
catch (Exception ex)
{
Console.WriteLine( ex.ToString());
return false;
}
}
我在机器目标的日志中遇到的错误是:
错误[IM003]由于系统错误,无法加载指定的驱动程序 5:访问被拒绝。 (OpenEdge 10.1B驱动程序,[...]
注意:
正如我之前所说,当我直接从机器目标运行时,执行MyProgram.exe效果很好。
关于我可能做错的任何想法?