来自代码的 Skype for Business shell 命令

Skype for Business shell commands from code


我开发了一个管理 Skype For Business 用户配置的应用程序。
我需要 运行 的操作之一应该使用此命令设置 Skype 用户的注册商池:

Move-CsUser -Identity [UserName] -Target [RegistrarPool] -Confirm:$false

现在,当我 运行 从命令行输入命令时,效果很好。
但是,与我在我的应用程序中使用的其他 Skype shell 命令不同, 当我 运行 使用我的 c# 代码执行该命令时,我得到了这个可怕的错误:

Move-CsUser : Unable to cast COM object of type 'System.__ComObject' to interface type \r\n
'Microsoft.Rtc.Interop.User.ICsUserManagement'. This operation failed because the QueryInterface call on the COM \r\n
component for the interface with IID '{D5ADD966-BDC3-4A8F-BFE8-6A59A9F74CB2}' failed due to the following error: Class \r\n
not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).\r\nAt line:1 char:1\r\n+
Move-CsUser -Identity 'testuser' -Target 'XXX' -Confirm: ...\r\n+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
\r\n    +
CategoryInfo          : InvalidOperation: (CN=Agent Develo...DC=il,DC=tleumi:OCSADUser) [Move-CsUser], InvalidCa \r\n   stException\r\n   
+ FullyQualifiedErrorId : MoveError,Microsoft.Rtc.Management.AD.Cmdlets.MoveOcsUserCmdlet\r\n \r\n"

尽管我尽了最大的努力来解决它,但我显然不擅长克服 COM 对象的错误。

谁能帮帮我?
我怎样才能让它发挥作用?

是的,每次我做一个 lync 编码项目时都会遇到这个问题。 右键单击您的项目名称转到属性。 您需要将平台目标设置为 x64 而不是任何 cpu