2014-10-14 3 views
2

Я пытаюсь написать консольное приложение для управления параметрами лицензии пользователя в Office 365. Я использую рабочую область вместе с модулем powershell MSOL. В основном я могу управлять всеми требованиями к лицензии пользователей, за исключением -DisabledPlans, когда я передаю список отключенных планов в командном параметре.runpace New-MsolLicenseOptions commandparameter

Ниже команда PowerShell, которая отлично работает и отключает все планы, как и ожидался

New-MsolLicenseOptions -AccountSkuId ACME:ENTERPRISEPACK -DisabledPlans OFFICESUBSCRIPTION,SHAREPOINTWAC,EXCHANGE_S_ENTERPRISE,SHAREPOINTENTERPRISE 

Я строй этого пространства выполнения commandparamater следующего

 Command licenseOptions = new Command("New-MsolLicenseOptions"); 
       licenseOptions.Parameters.Add((new CommandParameter("AccountSkuId", "ACME:ENTERPRISEPACK"))); 
       licenseOptions.Parameters.Add((new CommandParameter("DisabledPlans", 
"OFFICESUBSCRIPTION,SHAREPOINTWAC,EXCHANGE_S_ENTERPRISE,SHAREPOINTENTERPRISE,YAMMER_ENTERPRISE"))); 

Когда я построить CommandParameter выше в пространстве выполнения и выполнить, я получаю следующее {«Невозможно присвоить эту лицензию, потому что варианты лицензии недействительны».}

однако, когда я меня е следующий CommandParameter успешно отключает serviceplan

Command licenseOptions = new Command("New-MsolLicenseOptions"); 
       licenseOptions.Parameters.Add((new CommandParameter("AccountSkuId", "ACME:ENTERPRISEPACK"))); 
       licenseOptions.Parameters.Add((new CommandParameter("DisabledPlans", "EXCHANGE_S_ENTERPRISE"))); 

Я отладки, и я могу видеть, что только один элемент существует в отключенного списке со значением OFFICESUBSCRIPTION, SHAREPOINTWAC, EXCHANGE_S_ENTERPRISE, SHAREPOINTENTERPRISE, YAMMER_ENTERPRISE

, где я ожидал бы пункта для каждой записи. Я думаю, что, может быть, как интерпретатор параметров пробела интерпретирует разделители.

Приветствия заранее

ответ

1

Я переходящие в массиве как строки и я должен передавать список вместо

  List<string> disabledplans = new List<string>(); 

      disabledplans.Add("OFFICESUBSCRIPTION"); 
      disabledplans.Add("SHAREPOINTWAC"); 
      disabledplans.Add("EXCHANGE_S_ENTERPRISE"); 
      disabledplans.Add("SHAREPOINTENTERPRISE"); 
      disabledplans.Add("YAMMER_ENTERPRISE"); 

      Command licenseOptions = new Command("New-MsolLicenseOptions"); 
      licenseOptions.Parameters.Add((new CommandParameter("AccountSkuId", "ACME:ENTERPRISEPACK"))); 
      licenseOptions.Parameters.Add((new CommandParameter("DisabledPlans", disabledplans)));