0

リモート 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また、コマンドの最後にandを追加しようと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}";

そのため、スペースを含むパスは二重引用符で囲まれ、スラッシュはエスケープされませんが、同じ結果になります。

これをデバッグしたり、新しく作成されたプロセスの出力を取得したりする別の方法を知っている人はいますか?

4

1 に答える 1

1

私は同様の問題を抱えていました.私のものは、コマンドシェルを昇格して実行する必要があるということでした. SEFA は適切なエラー メッセージを表示するのが少し苦手で、黙って失敗します。

于 2016-11-13T22:08:16.210 に答える