2013-06-11 3 views
1

У меня есть код ниже, используемый для включения пользователя для Lync с помощью команд Power Shell. Код имеет два шага, первый - для включения пользователя, второй - для включения Enterprise Voice.Lync PowerShell: включить пользователя для корпоративного голоса

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); без ясной причины для меня. Я следил за следующими статьями here, here и here.

Сведения об исключении приведены ниже.

System.Management.Automation.RemoteException: Management object not found for identity "[email protected]". 
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() 

Пропустить что-нибудь?

ответ

0

Вот код, который я использую. Прекрасно работает ... Обратите внимание, что прохождение простого ... Parameters.Add («EnterpriseVoiceEnabled», true) НЕ работает. Необходимо вставить CommandParameter внутри Paramater.

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(); 
+0

Я использую следующее: 'ps.AddParameter (« EnterpriseVoiceEnabled »,« $ True »);' который достигает того же. –

+0

OP не говорит, какова его ситуация, но использование «$ true» не будет работать, если вы используете код удаленно (не на сервере Lync). Вы должны использовать определение параметра внутри другого для удаленного выполнения. – BradB

Смежные вопросы