2009-06-10 5 views
3

WMI를 사용하는 원격 컴퓨터에서 .appref-ms 바로 가기를 통해 ClickOnce 응용 프로그램을 시작하려고하지만 성공할 수 없습니다. notepad.exe를 실행하려고하면 아래 코드가 제대로 작동합니다.원격 컴퓨터에서 ClickOnce 응용 프로그램 (.appref-ms)을 실행하는 방법은 무엇입니까?

ManagementPath pm = new ManagementPath(@"\\server\root\cimv2:Win32_process"); 
ManagementClass processClass = new ManagementClass(pm); 

//Get an input parameters object for this method 
ManagementBaseObject inParams = processClass.GetMethodParameters("Create"); 

//Fill in input parameter values 
inParams["CommandLine"] = @"C:\Documents and Settings\Start Menu\Programs\New\New App.appref-ms"; 

//Execute the method 
ManagementBaseObject outParams = processClass.InvokeMethod("Create", inParams, null); 

답변

0

어떤 오류가 발생합니까?

현재, 사용중인 명령 줄 경로에는 두 가지 문제가있는 것으로 보입니다.

  1. 시작 메뉴 폴더 IMO는 C : \ Documents and Settings \ "Usernamehere"\ StartMenu에 있습니다.
  2. 확실치 않지만 사용자 프로필 내에있는 프로그램을 원격으로 실행할 수 없다고 생각합니다. c : \ program files와 같은 다른 위치에 프로그램을 설치 한 다음 호출 해보십시오.

정확한 오류를 언급하면 ​​문제를 진단하는 것이 도움이됩니다.

+0

안녕하세요 Amir 포인트 1의 경우 사용자 이름이 방금 코드에서 제거되었습니다. 이제 새로운 App.appref-ms를 C : 다이브에 넣었지만 아직 실행할 수 없습니다. 아래 코드를 사용하여 "알 수없는 오류"를 나타내는 오류 코드 "8"이 표시됩니다. ManagementBaseObject outParams = processClass.InvokeMethod ("Create", inParams, null); Console.WriteLine ("프로세스가 반환했습니다 :"+ outParams [ "returnValue"]); –

2

rundll32를 통해 .appref-MS 바로 가기를 실행하십시오 :

inParams["CommandLine"] = @"rundll32.exe dfshim.dll,ShOpenVerbShortcut ""C:\New App.appref-ms""; 

을 다른 방법으로, 대신 바로 가기 경로에 의존, 응용 프로그램 배포 URL을 사용할 수 있습니다 (당신은 .appref-를 열어 볼 수 있습니다 텍스트 편집기에서 MS 파일) :

inParams["CommandLine"] = @"rundll32.exe dfshim.dll,ShOpenVerbApplication http://github-windows.s3.amazonaws.com/GitHub.application"; 

Win32_Process.Create 원격 대화 형 프로세스를 만들 수 있음을 유의하십시오.