我需要在远程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}";
因此包含空格的路径是双引号,并且斜杠不会被转义,但结果相同。
有没有人知道另一种调试方法或检索新创建的进程的输出?
答案 0 :(得分:1)
我遇到了类似的问题,我的命令shell需要运行才能升级。
表示,SEFA在提供良好的错误消息方面有点勉强