2016-10-26 3 views
0

를 디버깅하는 방법 나는 우리의 원격 스카이프 서버에서이 명령을 실행해야합니다원격 명령

내 팀 통화 그룹에 동료를 추가
SEFAUtil.exe /server:lyncserver.domain1.co.uk sip:[email protected] /addteammember:sip:[email protected] /delayringteam:10 

.

나는 서버 자체에 명령을 실행 할 수 있어요, 그 서버에 다른 명령을 보낼 때 아래의 코드는 작동 : 그러나

var processToRun = new[] { process }; 
var connection = new ConnectionOptions(); 
var wmiScope = new ManagementScope(String.Format("\\\\{0}\\root\\cimv2", LyncServer), connection); 
var wmiProcess = new ManagementClass(wmiScope, new ManagementPath("Win32_Process"), new ObjectGetOptions()); 
var reason = wmiProcess.InvokeMethod("Create", processToRun); 

, process는 문자열입니다

"cmd /c cd /d C:\\Program Files\\Microsoft Lync Server 2013\\ResKit && SEFAUtil.exe /server:lyncserver.domain1.co.uk sip:[email protected] /addteammember:sip:[email protected] /delayringteam:10" 

그러면 사용자가 팀 통화 그룹에 추가되지 않습니다.


나는 reason 보통 성공을 나타내는 uint0를 포함 것을 볼 수 있습니다 -하지만 실제 명령은 분명히 실패합니다.

나는 또한 > C:\users\user.name\desktop\output.txt2> C:\users\user.name\desktop\output.txt을 명령 끝에 추가하려고 시도했지만 빈 텍스트 파일을 만들었으므로 그다지 유용하지는 않습니다!

업데이트

나는 다음에 명령을 변경 시도 :

const string LyncServer = "server.domain1.co.uk"; 
const string ResKitPath = @"C:\Program Files\Microsoft Lync Server 2013\ResKit"; 

var command = "SEFAUtil.exe /server:{LyncServer} sip:[email protected] /addteammember:sip:[email protected] /delayringteam:10"; 
var process = $"cmd /c cd /d \"{ResKitPath}\" && {command}"; 

그래서 공백이 포함 된 경로는 이중 인용하고 슬래시 탈출,하지만 같은 결과가되지 않는 것을 .

누구나 이것을 디버깅하거나 새로 생성 된 프로세스의 출력을 검색하는 다른 방법을 알고 있습니까?

+0

백 슬래시를 이스케이프 처리해야하는지 확실하지 않습니다. 공백 문자가 포함 된 디렉토리 경로를 인용해야합니다. 'cd/d "C : \\ 프로그램 파일 \\ Microsoft Lync Server 2013 \\ ResKit"'. – lit

+0

@ 라이토거 주의자 나는 그 접근법을 시도했지만 작동하지 않는 것 같은 내 대답을 업데이트했다. – Bassie

답변

1

필자도 유사한 문제가 있었는데, 제 권한은 상승 된 명령 셸이었습니다. SEFA는 좋은 오류 메시지를주는 데 약간의 단조가 있으며 조용히 실패합니다.