PowerShell脚本在IIS执行时不返回任何内容

时间:2013-09-23 10:47:23

标签: c# powershell

我需要帮助解决我一直试图解决的问题一周。

我有一个PowerShell脚本,它返回来自Office365环境的用户列表。

如果我从PowerShell控制台(我的机器)运行脚本,脚本将返回预期的数据。 如果我从服务器(W2008 R2 SP1)PowerShell控制台运行脚本,脚本将返回预期的数据。 如果我在我的机器中调试我的C#WebService代码(从执行脚本的地方),srcipt将返回预期的数据。

问题:如果我调用托管到服务器的WebService,脚本将返回NOTHING。

代码:

RunspaceConfiguration runspcConfig = RunspaceConfiguration.Create();
Runspace run = RunspaceFactory.CreateRunspace(runspcConfig);
run.ApartmentState = System.Threading.ApartmentState.STA;
run.ThreadOptions = PSThreadOptions.UseCurrentThread;
run.Open();
Pipeline pipeline = run.CreatePipeline();
Command cmd = new Command("PathScript.ps1");
cmd.Parameters.Add(new CommandParameter("DOMAIN", "domain.onmicrosoft.com"));
cmd.Parameters.Add(new CommandParameter("PRODUCT", "productReference"));
pipeline.Commands.Add(cmd);
Collection<PSObject> users=pipeline.Invoke();

终于找到了错误: “Microsoft.Online.Administration.Automation.ConnectMsolService”的类型初始化程序引发了异常。

用户和密码正确,IUSR和“ApplicationPool用户”包含在管理员组中。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

通过OP,

  

问题已解决:在IIS应用程序池高级设置中将“加载用户配置文件”设置为true