如何以编程方式将用户登录到响应组

How to Programatically Sign User In to Response Group

我尝试使用以下命令:

$x = Get-CsRgsAgentGroup -Identity service:ApplicationServer:LyncFEG.DOMAIN.co.uk/6156f51c-f0b3-4685-b7cc-2b1282a76548 -Name 'ITSupport'
$x.AgentsByUri.Add("sip:user@DOMAIN.com")
Set-CsRgsAgentGroup -Instance $x

但这似乎没有效果。

调用$x.AgentsByUri:

可以看到我感兴趣的用户已经在群里了
AbsolutePath   : user@domain.com
AbsoluteUri    : sip:user@domain.com
LocalPath      : user@domain.com
Authority      : 
HostNameType   : Unknown
IsDefaultPort  : True
IsFile         : False
IsLoopback     : False
PathAndQuery   : user@domain.com
Segments       : {user@domain.com}
IsUnc          : False
Host           : 
Port           : -1
Query          : 
Fragment       : 
Scheme         : sip
OriginalString : sip:user@domain.com
DnsSafeHost    : 
IdnHost        : 
IsAbsoluteUri  : True
UserEscaped    : False
UserInfo       : 

但是当我手动(通过 Skype)检查他们的响应组设置时,我可以看到他们不属于该组 'signed in',因此他们没有收到任何对该组的呼叫:

我还将这些属性与 'signed in' 用户的属性进行了比较,它们看起来完全一样。

最后,我尝试在添加用户之前将用户从组中删除(使用提到的第一种方法),但这没有任何效果。

是否可以使用 PowerShell 将 Lync 2013 用户登录到他们的呼叫响应组?

这样做的一种方法是 运行 以下 JSCript:

var ie = WSH.CreateObject('InternetExplorer.Application');
    url = "https://LYNCSERVER/RgsClients/Tab.aspx",

ie.visible = true;
ie.Navigate(url);
while (ie.readyState != 4) WSH.Sleep(25);

ie.document.getElementById('ctl05_ctl00_ctl04_ctl00_ctl00_ctl01').click();
ie.quit()

其中 'ctl05_ctl00_ctl04_ctl00_ctl00_ctl01' 是用于将用户登录到所需响应组(在本例中为 IT 支持)的复选框的 ID。

这个解决方案确实工作得很好,但我不想将它用作:

  1. 它与浏览器的 UI 交互,而不是直接与 Lync 服务器、SDK 或 API 交互(仍然不确定这是否可能)- 这不这似乎不是理想的方法。

  2. 此脚本需要在每个用户的 PC 上单独 运行(除非我们可以实施某种模拟),我更喜欢这样的解决方案 运行集中.