Как отладить удаленную команду
Мне нужно выполнить эту команду на нашем удаленном сервере Skype:
SEFAUtil.exe /server:lyncserver.domain1.co.uk sip:MySelf@domain.com /addteammember:sip:OtherUser@domain.com /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:MySelf@domain.com /addteammember:sip:OtherUser@domain.com /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:MySelf@domain.com /addteammember:sip:OtherUser@domain.com /delayringteam:10";
var process = $"cmd /c cd /d \"{ResKitPath}\" && {command}";
Таким образом, путь, содержащий пробелы, заключен в двойные кавычки и косые черты не экранируются, но с теми же результатами.
Кто-нибудь знает другой способ отладки этого или получения вывода для вновь созданного процесса?
1 ответ
У меня была похожая проблема, моя состояла в том, что командная оболочка должна была работать с повышенными правами. SEFA немного навязчиво дает хорошие сообщения об ошибках и молча терпит неудачу.