를 디버깅하는 방법 나는 우리의 원격 스카이프 서버에서이 명령을 실행해야합니다원격 명령
내 팀 통화 그룹에 동료를 추가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
보통 성공을 나타내는 uint
0
를 포함 것을 볼 수 있습니다 -하지만 실제 명령은 분명히 실패합니다.
나는 또한 > C:\users\user.name\desktop\output.txt
과 2> 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}";
그래서 공백이 포함 된 경로는 이중 인용하고 슬래시 탈출,하지만 같은 결과가되지 않는 것을 .
누구나 이것을 디버깅하거나 새로 생성 된 프로세스의 출력을 검색하는 다른 방법을 알고 있습니까?
백 슬래시를 이스케이프 처리해야하는지 확실하지 않습니다. 공백 문자가 포함 된 디렉토리 경로를 인용해야합니다. 'cd/d "C : \\ 프로그램 파일 \\ Microsoft Lync Server 2013 \\ ResKit"'. – lit
@ 라이토거 주의자 나는 그 접근법을 시도했지만 작동하지 않는 것 같은 내 대답을 업데이트했다. – Bassie