2009-01-23 4 views
0

웹 페이지의 페이지 다음 페이지를 탐색했으며 모든 사람이 실행 파일을 원격으로 실행할 수 없다고합니다. WMI를 통해 다른 컴퓨터의 응용 프로그램을 실행하고 해당 응용 프로그램의 창을 표시합니다.wmi의 원격 컴퓨터에서 프로그램을 시작하면서도 응용 프로그램 창을 엽니 다. (C#)

누구든지이 문제를 해결할 방법을 알고 있습니까?

2 개의 실행 파일을 만들려고했습니다. 1 실행 파일은 Process 클래스를 사용하고 단순히 실행 파일을 시작합니다. 코드는 다음과 같습니다.

class Program 
{ 
     static void Main(string[ ] args) 
     { 
      ProcessStartInfo startInfo = new ProcessStartInfo(); 
      startInfo.CreateNoWindow = false; 
      startInfo.UseShellExecute = false; 
      startInfo.FileName = "C:\\folder\\Mexe.exe"; 
      startInfo.WindowStyle = ProcessWindowStyle.Normal; 
      //p.MachineName="server"; 
      //p.Start(startInfo); 
      Process p = Process.Start(startInfo); 
     } 
} 

이 실행 파일은 원격 시스템에 있습니다.

클라이언트의 컴퓨터에 다른 실행 파일이 있습니다. 이 exe는 C#에서 WMI를 사용하여 명령 줄을 통해 서버에서 응용 프로그램을 원격으로 실행합니다. 나는 반환 코드 0을 얻는다. 서버에서 아무 일도 일어나지 않는다.

내가 잘못 생각한 아이디어가 있습니까?

나는 또한 서버의 작업 스케줄러에서 예약 된 작업을 만드는 것에 대해 생각했지만 작업을 사용하지 않도록 설정했습니다.

누구나 C# 코드에서 WMI 응용 프로그램을 사용하여이 작업을 시작할 수 있습니다. 작업/응용 프로그램이 시작되었는지 여부를 분별할 수있는 방법이 있습니까?

답변

0

명령 줄 문자열이 정상이면 프로세스 이름 (Mexe.exe)이 보이지 않더라도 Windows 작업 관리자의 프로세스 목록에 나타나야합니다. 또한 프로세스를 표시 할 수 있도록 예약 된 작업을 사용할 수 있지만 시도한 적이없는 정보를 보았습니다. 프로세스가 생성되었는지 확인한 후에는 예약 된 작업을 만들어 Win32_Process.Start()를 사용하여 실행할 수 있습니다.

0

'Mexe.exe'를 콘솔 응용 프로그램으로 설정했을 수 있습니다. 코드에서 startInfo는 Windows 응용 프로그램을 설명합니다. Windows 응용 프로그램으로 'Mexe.exe'를 만들어보십시오. 난 콘솔 및 Windows 응용 프로그램에 대한 귀하의 코드를 시도하고 그것은 Windows 응용 프로그램에 근무했습니다.

또한 클라이언트에서 실행 파일 하나만으로 직접 수행 할 수 있습니다. 'Mexe.exe'를 호출하는 중간 서버 실행 파일이 필요하지 않습니다. 성능 향상을위한 제안 일뿐입니다.

관련 문제