2012-02-01 5 views
5

Sto tentando di avviare un'applicazione GUI in remoto utilizzando PsExec.PsExec per eseguire in remoto un'applicazione 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); 

Il problema qui è che il processo si avvia in remoto, ma non riesco a vedere la GUI. Posso vederlo solo in task manager. C'è un modo per vedere la GUI sul computer remoto?

EDIT 1: * autorizzazioni *

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

Se eseguo sopra le righe di codice prima del processo di partenza, dà:

  • amministratore
  • vuoto
  • NomeDominio \ amministratore
  • e sono entrato con l'amministratore dell'account su anche il computer remoto.

    * InteractiveMode * Quando provo ad utilizzare l'interruttore -i dal prompt cmd dà: processo è terminato con codice di errore -1.073,741502 millions. Mentre prova ad eseguire usando C#, non fa nulla. Nessuna eccezione almeno!

    FINE EDIT 1.

    +0

    Molto probabilmente un problema utente vs desktop. Chi è registrato sul computer remoto? Quale account (utente) sta lanciando l'app remota? – adelphus

    +0

    @adelphus vedi Modifica 1, ho aggiunto i dettagli del permesso. – user96403

    risposta

    3

    Supponendo autorizzazioni corrette che si desidera -i per la modalità interattiva.

    -i Eseguire il programma in modo che interagisce con il desktop della sessione specificata sul sistema remoto. Se non viene specificata alcuna sessione, il processo viene eseguito nella sessione della console.

    info.Arguments = @"\\" + "<COmputerName>" + " -i " + @"""C:\Program F... 
    
    +0

    Vedere EDIT 1 Ho aggiunto il risultato dell'esecuzione con la modalità interattiva, grazie. – user96403

    +0

    Esistono opzioni -x e -s correlate alla sessione host, è possibile ricercare quelle –