【问题标题】:Powershell Handling cookie popup without using invoke-webrequestPowershell 不使用 invoke-webrequest 处理 cookie 弹出窗口
【发布时间】:2016-03-11 21:51:21
【问题描述】:

我试图让一个不使用invoke-webrequest 的脚本工作。我遇到的问题是,当我运行脚本时会出现弹出提示,弹出窗口包含以下消息;

“Windows 安全警告 为了让本网站为您提供个性化的信息,您会允许它在您的计算机上放置一个小文件(称为 cookie)吗?” 是的,用户没有回应 我正在执行的代码如下:

$ParsedHTML = New-Object -com "HTMLFILE"
$webresponse = New-Object System.Net.WebClient
$webresponse.Headers.Add("Cookie", $CookieContainer.GetCookieHeader($url))
$result = $webresponse.DownloadString($url)
$ParsedHTML.IHTMLDocument2_write($webresponse)
$ParsedHTML.body.innerText

这段代码的主要问题是我使用的部分网络链接的 $url 检查是否启用了 cookie,并且这段代码导致返回值禁用。

我的问题,有没有一种方法可以在不更改测试 url 站点的输出响应的情况下处理 cookie 请求。

注意:此脚本将在数百台远程计算机上自动执行一个进程,因此未处理的弹出窗口只会阻止脚本运行。

【问题讨论】:

    标签: powershell cookies


    【解决方案1】:

    我在另一个 SO 问题Using Invoke-Webrequest in PowerShell 3.0 spawns a Windows Security Warning 中找到了答案

    添加参数-UseBasicParsing

    Technet https://technet.microsoft.com/en-us/library/hh849901.aspx 指出该参数会停止 DOM 处理。并且有警告“当计算机上未安装 Internet Explorer 时需要此参数,例如在 Windows Server 操作系统的服务器核心安装上。”

    因此,您的里程可能会有所不同。

    【讨论】:

    • 在 SharePoint 中,当使用 invoke-webrequest 获取 people.aspx 页面以获取成员资格时,它可能会引发错误,指出 init.js failed to load。我发现 -UseBasicParsing 阻止了弹出窗口,但 $result.allElements 没有填充,所以我改用 $result.rawcontent。谢谢罗伯。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-03
    • 2013-05-04
    • 2020-05-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多