2016-10-26 5 views
0

をデバッグするためにどのように私は私達のリモートSkypeのサーバー上でこのコマンドを実行する必要があります。リモートコマンド

私のチーム呼び出しグループに同僚を追加
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

@Liturgist私はそのアプローチを試したところで私の答えを更新しましたが、うまくいかないようです – Bassie

答えて

1

私は同様の問題を抱えていました。私はコマンド・シェルを高水準で実行する必要がありました。 SEFAは良いエラーメッセージを出すのはちょっと難しいですし、黙って失敗します。

関連する問題