Lync PowerShell:为企业语音启用用户

时间:2013-06-11 11:25:45

标签: c# shell pipeline lync

我有以下代码用于使用Power Shell命令为用户启用Lync。代码有两个步骤,第一步是启用用户,第二步是启用企业语音。

 using (Pipeline pipe = runspace.CreatePipeline())
 {
     var enableCsUser = new Command("Enable-CsUser");
     enableCsUser.Parameters.Add("Identity", upn);
     enableCsUser.Parameters.Add("SipAddress", "sip:" + sipAddress);
     enableCsUser.Parameters.Add("RegistrarPool", LyncPool);
     pipe.Commands.Add(enableCsUser);
     InvokePipeline(pipe);
 }
 using (Pipeline pipe = runspace.CreatePipeline())
 {
     var setCsUser = new Command("Set-CsUser");
     setCsUser.Parameters.Add("Identity", upn);
     setCsUser.Parameters.Add("EnterpriseVoiceEnabled", true);
     pipe.Commands.Add(setCsUser);
     InvokePipeline(pipe);
 }

第一部分工作正常,用户已启用。第二部分在InvokePipeline(pipe);处引发了一个例外,我没有明确的理由。我已按照以下文章hereherehere

以下是例外情况。

System.Management.Automation.RemoteException: Management object not found for identity "lfigo@fabrekam.cloudyCloud.com".
at System.Management.Automation.PowerShell.CoreInvoke[TOutput](IEnumerable input, PSDataCollection`1 output, PSInvocationSettings settings)
at System.Management.Automation.PowerShell.Invoke(IEnumerable input, PSInvocationSettings settings)
at System.Management.Automation.PowerShell.Invoke(IEnumerable input)
at System.Management.Automation.RemotePipeline.Invoke(IEnumerable input)
at System.Management.Automation.Runspaces.Pipeline.Invoke()

我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

这是我使用的代码。工作正常...请注意,传递一个简单的... Parameters.Add(" EnterpriseVoiceEnabled",true)不起作用。必须在Paramater中嵌入CommandParameter。

Pipeline pipeline = runspace.CreatePipeline();
Command enable_telephone = new Command(@"Set-CsUser");
pipeline.Commands.Add(enable_telephone);
enable_telephone.Parameters.Add("Identity", Account1.Text);
enable_telephone.Parameters.Add("LineUri", "tel:" + phone_number);
enable_telephone.Parameters.Add(new CommandParameter("EnterpriseVoiceEnabled", true));
pipeline.Invoke();