リモート 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}";
そのため、スペースを含むパスは二重引用符で囲まれ、スラッシュはエスケープされませんが、同じ結果になります。
これをデバッグしたり、新しく作成されたプロセスの出力を取得したりする別の方法を知っている人はいますか?