Исключение COM-объекта Powershell из HRESULT: 0x80010108 (RPC_E_DISCONNECTED) - PullRequest
2 голосов
/ 21 декабря 2011

Я пытаюсь использовать powershell для написания некоторых задач в Internet Explorer.Это включает в себя загрузку файла с веб-сайта после входа на сайт.У меня есть один рабочий тестовый скрипт, но тот же код для реального сайта выдает мне эту ошибку:

Оператор '=' не выполнен: вызванный объект отключился от своих клиентов.(Исключение из HRESULT: 0x80010108 (RPC_E_DISCONNECTED)).В U: \ PowershellScriptProjectSFTP \ test.ps1: 71 char: 22 + $ controlRef = <<<< $ browserDoc.getElementByID ($ controlID) + CategoryInfo: InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId: OperatorFailed </p>

$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, а также для серверов 03 и 08.

Действительно, я просто ищу любое объяснение причин такого поведения.Как я уже сказал, этот код указывает на то, что некоторые сайты работают отлично, а на других каждый раз не работает.

1 Ответ

3 голосов
/ 09 февраля 2012

Просто наткнулся на это сам и обнаружил, что запуск окна Powershell «от имени администратора» устранил проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...