windows-7 - Powershell COM 对象 HRESULT 异常 : 0x80010108 (RPC_E_DISCONNECTED)

标签 windows-7 com powershell

我正在尝试使用 powershell 在 Internet Explorer 中编写一些任务脚本。这涉及登录网站后从网站下载文件。我有一个有效的测试脚本,但实际站点的相同代码给了我这个错误:

“=”运算符失败:调用的对象已与其客户端断开连接。 (HRESULT 异常:0x80010108 (RPC_E_DISCONNECTED))。 在 U:\PowershellScriptProjectSFTP\test.ps1:71 char:22 + $controlRef = <<<< $browserDoc.getElementByID($controlID) + CategoryInfo : InvalidOperation: (:) [], RuntimeException + FullQualifiedErrorId:运算符(operator)失败

$browserDoc
$ie = new-object -com "InternetExplorer.Application"
$ie.navigate("about:blank")
$ie.visible = $true
[System.Threading.Thread]::Sleep(2000)
$ie.navigate($URL)
#get controls
write-host "Getting Document"
$browserDoc=$ie.Document    
write-host "Getting Email component"
$email = $browserDoc.getElementById("MainContent_userEmail")
write-host "Getting Password component"
$pass = $browserDoc.getElementById("MainContent_userPassword")
write-host "Getting Button component"
$login = $browserDoc.getElementById("MainContent_submitButton") 

实际的错误发生在代码中的其他地方,我将其省略,因为它执行与此处相同的操作,但在循环期间确保页面完成加载。此代码可以在同一台计算机上的不同站点上运行,但都是 .net aspx 2.0 站点。

基本上,一旦 Internet Explorer 导航到指定的 url,powershell 就失去了与该对象通信的能力,并且此错误之后会出现几个 InvokeMethodOnNull 和 PropertyNotFound 错误(这些我的理解,它们是引用 $ie 的结果,它已成为一个空对象,这是我试图诊断的整个问题)。我运行的是 Windows 7。Microsoft 声称已修复此问题,但仅适用于 XP 以及 Server 03 和 08。

真的,我所寻找的只是对导致这种行为的原因的任何解释。正如我所说,相同的代码指向某些网站可以完美运行,而在其他网站则每次都会失败。

最佳答案

我自己也遇到过这个问题,发现“以管理员身份”运行 Powershell 窗口可以解决问题。

关于windows-7 - Powershell COM 对象 HRESULT 异常 : 0x80010108 (RPC_E_DISCONNECTED),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8591925/

相关文章:

python - 如何使用 SendKeys 将模拟键盘敲击发送到事件窗口

.net - Visual Studio 2008 和 Windows 7 呈现文本的方式不同

com - 在运行时替换 COM 类实现

powershell - PowerShell Get-Help无法识别参数注释

Python - 读取 Powershell 脚本输出,使用子进程,希望逐行接收标准输出

java - JFileChooser 在顶部显示目录,就像在 Windows 中一样

ms-access - 是否有适用于 Access 的 Windows 7 ODBC 驱动程序?

c++ - VirtualBox IGuestSession::ProcessCreate 返回 0x8000FFFF (E_UNEXPECTED)

c# - [ComVisible] 默认和公共(public)类 COM 公开有什么关系?

excel - Powershell - Excel 将列的格式更改为文本