我正在尝试编写控制台应用程序来管理Office 365中的用户许可证选项。我将runspace与MSOL powershell模块结合使用。基本上,当我在命令参数中传递禁用计划列表时,我能够管理除-DisabledPlans之外的所有用户许可要求。
以下是PowerShell命令,该命令可以正常工作,并按预期禁用所有计划
New-MsolLicenseOptions -AccountSkuId ACME:ENTERPRISEPACK -DisabledPlans OFFICESUBSCRIPTION,SHAREPOINTWAC,EXCHANGE_S_ENTERPRISE,SHAREPOINTENTERPRISE我构建这个运行空间命令参数,如下所示
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")));当我在运行空间中构建上面的命令参数并执行时,我收到以下信息{“无法分配此许可证,因为许可证选项无效。”}
但是,当我使用以下命令参数时,它成功地禁用了服务计划
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的项目
在那里我希望每个条目都有一个条目。我认为这可能是运行空间命令参数解释分隔符的方式。
提前干杯
发布于 2014-10-15 22:59:19
我以字符串的形式传入了数组,而我应该传递一个列表
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)));https://stackoverflow.com/questions/26367145
复制相似问题