使用OpenEdge驱动程序for Progress在远程计算机上使用PsExec拒绝访问

时间:2018-03-07 14:57:27

标签: c# odbc openedge psexec progress-db

我有一台安装了驱动程序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驱动程序,[...]

注意:

  • 数据源是计算机Target上的32位系统DSN。
  • 目标计算机均为64位。

正如我之前所说,当我直接从机器目标运行时,执行MyProgram.exe效果很好。

关于我可能做错的任何想法?

0 个答案:

没有答案