【问题标题】:Using Invoke-Webrequest in PowerShell 3.0 spawns a Windows Security Warning在 PowerShell 3.0 中使用 Invoke-Webrequest 会产生 Windows 安全警告
【发布时间】:2013-02-19 03:10:30
【问题描述】:

在 PowerShell 3.0 中使用以下代码时

PS> $data = Invoke-Webrequest -Uri stackoverflow.com
PS> $data.ParsedHtml.getElementsByTagName("div")

我收到此警告:

Windows 安全警告 - 允许本网站提供信息 为您个性化,您是否允许它放置一个小文件(称为 cookie) 在你的电脑上?

我真的很想禁止显示此消息或添加代码来处理 cookie,以便可以安排代码。

我曾尝试在 IE 中信任该站点,允许使用 cookie,甚至降低“用户帐户控制设置”,但无济于事。

【问题讨论】:

    标签: internet-explorer powershell powershell-3.0


    【解决方案1】:
    $data = Invoke-WebRequest http://stackoverflow.com -UseBasicParsing
    

    它看起来像一个 Internet Explorer 提示,这是因为 Invoke-WebRequest 可能正在使用 Internet Explorer 解析 DOM。当您使用 -UseBasicParsing 参数时,您指示 PowerShell 使用其自己的解析器。由于某种原因,它似乎也隐藏了 cookie 提示。

    【讨论】:

    • 如果不使用-UseBasicParsing(它会弄乱我的脚本的其余部分),有没有办法关闭 Invoke-WebRequest 打开的 Internet Explorer 窗口会话?
    • -UseBasicParsing 将 web 引擎更改为 powershell 引擎,因此您会返回不同的数据,包括 .images 等空属性
    【解决方案2】:

    可以通过放松互联网选项中的隐私设置来隐藏消息

    您也可以只为您在脚本中使用的站点添加每个站点的隐私选项,而不是允许所有 cookie。

    -UseBasicParsing相反,您将保留 Internet Explorer 提供的解析。 (以放松安全为代价)

    【讨论】:

    • 对我不起作用...尝试允许一切,阻止一切,更改用户和管理模式下的设置...有些网站会产生这些警告,有些则不会。
    猜你喜欢
    • 1970-01-01
    • 2017-05-27
    • 1970-01-01
    • 1970-01-01
    • 2014-09-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多