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

本文关键字:返回 任何内 执行 脚本 IIS PowerShell | 更新日期: 2023-09-27 18:32:35

我需要帮助来解决一个星期以来一直在尝试解决的问题。

我有一个PowerShell脚本,该脚本从Office365环境返回列表操作系统用户。

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

问题:如果我调用托管到服务器中的 Web 服务,脚本将不返回任何内容。

法典:

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 和"应用程序池用户"包含在管理员组中。

知道吗?

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

通过 OP,

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