首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何调试远程命令

如何调试远程命令
EN

Stack Overflow用户
提问于 2016-10-26 14:58:04
回答 1查看 84关注 0票数 0

我需要在远程Skype服务器上执行以下命令:

代码语言:javascript
复制
SEFAUtil.exe /server:lyncserver.domain1.co.uk sip:MySelf@domain.com /addteammember:sip:OtherUser@domain.com /delayringteam:10

这就给我的团队呼叫组增加了一位同事。

我能够在服务器本身上运行该命令,下面的代码在向该服务器发送其他命令时工作:

代码语言:javascript
复制
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是字符串时:

代码语言:javascript
复制
"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.txt2> C:\users\user.name\desktop\output.txt添加到命令的末尾,但是它们只是创建了空的文本文件,所以不太有用!

更新

我尝试将命令更改为:

代码语言:javascript
复制
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}";

因此,包含空格的路径是双引号,斜杠不是转义,而是具有相同的结果。

有人知道另一种方式来调试这个或检索新创建的进程的输出吗?

EN

回答 1

Stack Overflow用户

发布于 2016-11-13 22:08:16

我也有过类似的问题,我的问题是命令外壳需要运行得更高。SEFA在给出好的错误消息方面有点愚蠢,并且默默地失败了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40265655

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档