我正在尝试使用 Powershell 进行一些简单的自动化操作,从我们公司的一个本地 Intranet 页面中提取链接 URL,然后对这些 URL 进行一些处理。最后,我将使用脚本打开每个链接并单击页面上的按钮。我在 Windows 7 x64 中使用 Internet Explorer 9。
下面是一个简单的 powershell 脚本示例,它显示页面上的所有链接:
$ie = new-object -com "InternetExplorer.Application"
$ie.Visible = $true
$ie.Navigate( "http://www.reddit.com" )
While ($ie.Busy) {
Sleep 1
}
$links = $ie.Document.getElementsByTagName("a")
$links | foreach {
write-host $_.href
}
在我将 URL 替换为本地 Intranet 站点之前,此脚本工作正常。它遵循正常的 URL 方案 ( http://internaldomain.com/etc ),但它被识别为 Intranet 站点。一旦我尝试在 Intranet 区域中抓取页面,$ie.Document 值突然变为 NULL,并且脚本失败。
我猜这与该区域的一些模糊设置有关......我不确定。我在网上找到了一些建议,例如将其添加到您信任的站点,但没有奏效。这是我第一次使用 Powershell 进行 Web 自动化,因此将不胜感激任何帮助或见解。