5

我正在尝试使用 PsExec 远程启动 GUI 应用程序。

            ProcessStartInfo info = new ProcessStartInfo(@"<path to dir>");
            info.FileName = @"C:\<dirpath>\PsExec.exe";
            info.Arguments = @"\\" + "<COmputerName>" + " " + @"""C:\Program Files (x86)\<exepath>\<exename>.exe""";
            info.RedirectStandardOutput = true;
            info.UseShellExecute = false;
            info.RedirectStandardError = true;
            info.WindowStyle = ProcessWindowStyle.Maximized;

            Process o = Process.Start(info);

这里的问题是该进程确实远程启动,但我看不到 GUI。我只能在任务管理器中看到。有没有办法在远程计算机上查看GUI ?

编辑1: *权限*

  1. Console.WriteLine (System.Environment.UserName.ToString());
  2. Console.WriteLine(Thread.CurrentPrincipal.Identity.Name.ToString());
  3. Console.WriteLine("当前winddentity" + System.Security.Principal.WindowsIdentity.GetCurrent().Name.ToString());

如果我在开始进程之前执行上面的代码行,它会给出:

  • 行政人员
  • 空白的
  • 域名\管理员
  • 我也使用远程计算机上的管理员帐户记录了它。

    * InteractiveMode * 当我尝试使用 cmd 提示符中的开关 -i 时,它给出:进程退出,错误代码为 -1073741502。在尝试使用 C# 执行时,它根本没有做任何事情。至少没有例外!

    编辑结束 1。

    4

    1 回答 1

    3

    假设您需要-i交互模式的正确权限。

    -i 运行程序,使其与远程系统上指定会话的桌面交互。如果未指定会话,则进程在控制台会话中运行。

    info.Arguments = @"\\" + "<COmputerName>" + " -i " + @"""C:\Program F...
    
    于 2012-02-01T13:49:08.520 回答