更新到Windows 10

时间:2016-01-04 16:16:24

标签: powershell com windows-10 powershell-v5.0

我几天前升级到Windows 10,但我无法让我的一个脚本工作。这个简单的独立脚本演示了这个问题:

$erroractionpreference = "Continue"   
$ie = New-Object -ComObject InternetExplorer.Application
$ie.visible = $True

$url = "http://gtr1.backtest.org/2013/?sp500.a:et1"

$ie.Navigate($url)
while ($ie.busy) {Start-Sleep 1}
$backtest = $ie.document.getElementsByName("submit") |
            Where-Object {$_.value -eq "Run Backtest"}
$backtest.click()  #shows SP500 backtest results
while ($ie.busy) {Start-Sleep 1}
$screener = $ie.document.getElementsByName("submit") |
            Where-Object {$_.value -eq "Run Screener"}
$screener.click()  #shows list of SP500 stocks
while ($ie.busy) {Start-Sleep 1}

该程序使用简单的屏幕导航到股票回测网站,点击"运行回测"按钮,这部分工作正常;我可以在可见的IE会话中观察进度。应该发生的是"运行筛选器"然后单击按钮,显示SP500库存列表。

但显然,更新后(第一次点击后)网站信息不会回到脚本。有一次或两次我看到RPC DISCONNECTED类型错误但我无法重现它。这是通常的错误消息:

Exception from HRESULT: 0x800A138A
At C:\Users\MD\OneDrive\Documents\Mechanical Investing\GTR1\Daily Runs\Temp1.ps1:12 char:1
+ $screener = $ie.document.getElementsByName("submit") | Where-Object { ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OperationStopped: (:) [], COMException
    + FullyQualifiedErrorId : System.Runtime.InteropServices.COMException

所以初次导航到网站,第一个按钮点击工作正常,但第二个按钮没有。我是否以管理员身份运行并不重要,它在命令提示符下也不起作用。我有一个类似的脚本,在Windows 7上运行了很长时间,没有任何问题。我确实在防火墙设置中添加了PowerShell作为允许的应用程序,但这并没有帮助。

有什么想法吗?

1 个答案:

答案 0 :(得分:-1)

我遇到了同样的错误,并在regedit中添加了一个密钥来修复它。这将在下面的链接中讨论。

Powershell Web Page Automation works on Internet, not Intranet