Powershell:如何自动填充“Windows 安全中心”提示窗口的字段以访问网页Powershell: How to automatically populate the fields of a “Windows Security” prompt window to access a web page

Powershell: How to Automatically Populate the Fields of a "Windows Security" Prompt Window to Access a web Page

提问人:Forlorn Vox 提问时间:11/1/2020 最后编辑:Forlorn Vox 更新时间:12/12/2020 访问量:614

问:

这是我在 Stack Overflow 上的第一个问题,所以如果它有点含糊不清,请原谅我。如果碰巧是这样,我将非常乐意尽我所能澄清。

因此,我正在尝试自动登录到需要授权才能进行一些网络抓取的 IP。导航到 URL 后,会出现此窗口。是否有方法可以自动填充此窗口中的用户名/密码字段?

带有用户名/密码字段的 Windows 安全中心窗口

这是我到目前为止所拥有的

function Initialize-IE {
param([system.string]$url,
      [System.Boolean]$isVisible)
$ie = New-Object -ComObject internetexplorer.application
$ie.visible = $isVisible
$ie.navigate($url)
while ($ie.Busy -eq $true) {Start-Sleep -seconds 1;} 
return $ie

}

Initialize-IE -url "10.10.205.63" -isVisible $false

另外一点:我知道这可以使用带有 credential 参数的 invoke-webrequest 来完成。但是,此网页上有一个按钮,要求用户多次单击它,以便执行内联脚本并返回我需要的信息。据我所知,模拟按钮按下的唯一方法是通过 Internet Explorer 对象抓取元素并使用 click() 方法。因此,如果有使用 invoke-webrequest 方法的替代方法,请随时发布它。

Powershell Internet-Explorer-8 调用 WebRequest

评论

0赞 postanote 11/1/2020
这不是网页元素,因此,IVR 不会让您到达那里。这是该 Web 服务器上该站点上的身份验证配置引发的正常 Windows 操作系统身份验证提示。所以,它是一个 GUI 身份验证框。所以,这不是一个网页自动化用例,而是一个 GUI 自动化用例。因此,请使用 SendKeys 或其他 GUI 自动化工具来执行此操作。
0赞 Deepak-MSFT 11/2/2020
如果站点托管在 Intranet 网络上,则可以尝试将该站点添加到“受信任的站点”列表中。然后,您可以转到 .选择使用当前用户名和密码自动登录请看这里的图片。它可以帮助您在不输入凭据的情况下登录站点。因此,当您尝试运行 Powershell IE 自动化代码时,不会显示身份验证弹出窗口。Internet options->Security tab->Local intranet->click the custom level button-> Log on
0赞 Forlorn Vox 11/3/2020
谢谢,这两个答案都是我会考虑的选项。
0赞 Deepak-MSFT 11/4/2020
您可以测试这些建议,并让我们知道您的测试结果。
0赞 Forlorn Vox 12/12/2020
由于我在权限有限的计算机上使用该脚本,因此由于用户的安全策略不允许您在没有凭据的情况下编辑互联网选项,因此我只使用了 postanote 的方法。

答: 暂无答案