【问题标题】:PowerShell internet explorer automation error server 2012PowerShell Internet Explorer 自动化错误服务器 2012
【发布时间】:2015-04-27 16:48:29
【问题描述】:

我有一个 PowerShell 脚本,它登录到我们的一个站点,单击一些链接然后关闭。基本上只是为了监控并确保一切正常!下面是脚本顶部的 sn-p。

$ie = new-object -com "InternetExplorer.Application"
$ie.visible = $true
$ie.navigate($url)
while( $ie.busy){Start-Sleep 1} 
$doc = $ie.document
$continue = $doc.getElementByID("overridelink")
$continue.click()
while( $ie.busy){Start-Sleep 1} 

基本上这部分打开 IE 并单击证书错误的继续按钮。如果我在我的 Windows 7 机器上运行它,它工作正常,但是在 Server 2012 R2 上我得到:

“您不能在空值表达式上调用方法”

桌面和服务器都运行 PowerShell 4.0 和 Internet Explorer 11。

不久前我读到一些东西,提到这可能是 2012 年的一个错误,它不允许此方法单击 IE 中的链接,但不记得在哪里以及是否有修复!

有谁知道是什么原因造成的,也许如何解决?

我在想的另一件事(如果有人愿意解释!),我应该改用 invoke-webrequest 吗?如果可以,是否可以登录网站,打开一些链接(不必在屏幕上显示)然后关闭以确认一切正常?

提前感谢您的任何意见!

【问题讨论】:

    标签: internet-explorer powershell windows-server-2012-r2


    【解决方案1】:

    只需启用 Internet Explorer 企业模式。

    在 Internet Explorer 中,按“ALT”键,进入工具 > 企业模式。

    如果企业模式不可用: •启动GPEDIT.MSC •转到用户配置 > 管理模板 > Windows 组件 > Internet Explorer > 让用户从工具菜单打开和使用企业模式 •启用

    它工作!

    【讨论】:

    • 我尝试禁用增强的安全性,将站点添加到受信任的站点,将站点添加到兼容性视图列表。但这就是最终成功的原因。谢谢!
    • 另外,由于我在浏览网站,我必须为我接触的每个页面设置企业模式。
    猜你喜欢
    • 1970-01-01
    • 2018-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-14
    • 2010-10-16
    • 1970-01-01
    相关资源
    最近更新 更多