【问题标题】:Viewing hidden Powershell/IE windows查看隐藏的 Powershell/IE 窗口
【发布时间】:2018-02-28 15:27:34
【问题描述】:

我有一个在后台运行的 Powershell 脚本,部分脚本将使用隐藏的 IE。有时这个脚本挂了,我想查看 IE 和 Powershell 窗口,看看它卡在哪里。我找不到这样做的方法。

有时,如果脚本正在运行,则 Windows 会给我一条消息,表明进程正在运行,并询问我是否要查看它,然后我就可以查看这些窗口,但我不知道该怎么做没有先收到该消息。

我需要弄清楚这个脚本卡在哪里。如果我手动运行它,它可以正常工作并且大多数时候都可以正常工作,但它经常会卡在同一个地方。

这是一台运行 Windows 10 的机器。

【问题讨论】:

  • 你是在本地机器还是远程服务器上运行脚本?查看this 是否相关。
  • 脚本在本机运行
  • 看起来这是您开始该过程时使用的东西。问题是这个过程已经在没有那个参数的情况下开始了
  • 您是否将脚本作为计划任务运行,即从任务计划程序运行?您的脚本是否设置了 $IE.Visible = $true 属性?如果从PowerShell 控制台运行,这将使 IE 窗口可见。
  • 脚本使用我登录时使用的用户名/密码从外部控制器启动。如果我查看 taskmanager,我会看到正在运行的进程。在脚本中,$Ie.visible 设置为 false。我想获取正在运行的隐藏窗口并使其可见,以及隐藏的 powershell 窗口。

标签: windows powershell internet-explorer hidden


【解决方案1】:

打开一个 powershell 窗口并输入以下命令以连接到您正在运行的 Internet Explorer:

$windows = (New-Object -Com "Shell.Application").Windows()
$ie = $windows | Where-Object {$_.Name -eq "Internet Explorer"}
$ie.Visible = $true

这应该将您连接到正在运行的 IE 实例并使窗口再次可见。如果这不起作用,我会检查$windows 变量中的对象,看看它是否检测到你的IE。如果它没有检测到它,您可能需要确保它以管理员权限运行。

在发现 powershell 脚本正在远程会话中启动 IE 对象后,我将改为实现计划任务并远程触发该任务,以便它将在会话 1 中运行,而不是在会话 0 中运行。 有关此问题的更多信息以及其他各种应用程序: http://psappdeploytoolkit.com/forums/topic/session-0-ui/

https://github.com/PowerShell/Win32-OpenSSH/issues/998

https://serverfault.com/questions/690852/use-powershell-to-start-a-gui-program-on-a-remote-machine

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2017-09-11
  • 1970-01-01
  • 2019-12-12
  • 1970-01-01
  • 2020-11-28
  • 2020-06-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多