脚本在ISE中运行正常,但在Powershell控制台中运行不正常

时间:2015-05-21 15:39:34

标签: powershell

我写了一个非常冗长的脚本来创建一个表单。它的主要目的是连接到vCenter服务器,在不同数据中心内总计主机/虚拟机,还可以识别ESXi主机版本。在ISE中运行脚本表单加载正常,当我单击Button以启动许多各种函数来更新字段时,它会运行。我有Foreach()字段,并在表单底部的一个StatusLabel中添加,以显示它当前正在扫描的脚本中的位置。

完成所有工作后,我保存了PS1文件并将其移至共享服务器进行运行。当我运行Powershell控制台(作为管理员)并指向该文件时,表单加载正常。单击按钮开始生成信息后,它只会更改为(无响应)并变灰。我知道它有效,如果留在那里足够长,它将返回信息。

为什么控制台窗口的功能不像ISE?我希望能够在脚本中看到信息和状态标签更新/更改(就像我在ISE中一样)。

感谢您的反馈。该脚本长达数千行,需要在上传之前进行清理。希望在这之前得到一些一般信息。

2 个答案:

答案 0 :(得分:2)

我更新到v4并使用Jan Chrbolka的命令验证我的命令窗口是作为STA运行的。脚本现在运行正常。

答案 1 :(得分:0)

我也遇到了同样的问题。(顺便说一句,我现在无法将Powershell升级到V4,因为它是我公司拥有的。)

当我从Powershell命令行推出时,我在表单中包含的“浏览”按钮无法正常工作。单击“浏览”按钮后,它进入“无响应”状态。

我接受了Jan ChrbolkaMay关于STA和MTA的建议。

我检查了与之相关的线程,并将脚本执行格式更改为修复我的问题的下面一个。(添加单词-STA)

powershell -STA -File D:\PS\GUI.ps1

用于检查当前状态。在Commandshell和ISE中使用以下查询。