我写了一个非常冗长的脚本来创建一个表单。它的主要目的是连接到vCenter服务器,在不同数据中心内总计主机/虚拟机,还可以识别ESXi主机版本。在ISE中运行脚本表单加载正常,当我单击Button以启动许多各种函数来更新字段时,它会运行。我有Foreach()字段,并在表单底部的一个StatusLabel中添加,以显示它当前正在扫描的脚本中的位置。
完成所有工作后,我保存了PS1文件并将其移至共享服务器进行运行。当我运行Powershell控制台(作为管理员)并指向该文件时,表单加载正常。单击按钮开始生成信息后,它只会更改为(无响应)并变灰。我知道它有效,如果留在那里足够长,它将返回信息。
为什么控制台窗口的功能不像ISE?我希望能够在脚本中看到信息和状态标签更新/更改(就像我在ISE中一样)。
感谢您的反馈。该脚本长达数千行,需要在上传之前进行清理。希望在这之前得到一些一般信息。
答案 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中使用以下查询。