【问题标题】:An error occurred while enumerating through a collection: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))枚举集合时出错:访问被拒绝。 (来自 HRESULT 的异常:0x80070005 (E_ACCESSDENIED))
【发布时间】:2016-07-15 20:44:29
【问题描述】:

我正在尝试创建对 IE 弹出窗口的引用。我的脚本单击一个链接,该链接在新窗口中打开一个页面。为了访问这个新窗口,我正在执行以下操作:

$allreg = New-Object -ComObject shell.application
$popup = $allreg.Windows() | ? {$_.LocationName -like 'Wells'}
$popup.document

错误: 枚举集合时出错:访问被拒绝。 (来自 HRESULT 的异常:0x80070005 (E_ACCESSDENIED))。

更新: 所以我能够获得对窗口链接的引用,但仍然无法获得窗口的文档对象。有什么想法吗?

【问题讨论】:

  • 您访问的其中一个返回的 Windows 可能正在以另一个用户身份运行。尝试以管理员身份运行脚本。
  • 嗯,但我已经以管理员身份运行我的 PowerShell ISE。
  • 只是为了确定:您以管理员身份运行它(右键单击 powershell 并以管理员身份运行)?对于 UAC,拥有管理员用户是不够的。
  • 正确。每次启动 PowerShell 时,我都右键单击并以管理员身份运行。
  • "我的脚本点击了一个链接" 你是用IE的com对象点击链接吗?然后试图从弹出窗口中获取数据?如果是这样,这非常棘手。唯一有效的解决方案是获取链接的 URL 并直接在 com 对象中导航到它。 Example

标签: internet-explorer powershell


【解决方案1】:

让它工作。我没有创建 Shell.Application 对象并找到正确的窗口,而是创建了第二个 IE.application 对象并像这样直接导航,

$ie2 = New-Object -COMObject InternetExplorer.Application

$ie2.Navigate("https://wffnet.wellsfargo.com/ilonline/feature/wff/seller/guide.start.go")

这是我能够抓取$ie2的文档对象

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-28
    • 1970-01-01
    相关资源
    最近更新 更多