をデバッグするためにどのように私は私達のリモート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
は通常成功を示す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
@Liturgist私はそのアプローチを試したところで私の答えを更新しましたが、うまくいかないようです – Bassie