Windows 10 Powershell Invoke-WebRequest"Windows安全警告"

Joh*_*ith 5 windows cookies powershell windows-10 powershell-5.0

好吧,这是我认为微软需要立即解决的一个大问题.重现这一步的步骤:

powershell> Invoke-WebRequest"anywebsitewithcookies.com"(让我们以microsoft.com为例)

会发生以下警告:http: //i.stack.imgur.com/TR023.jpg

现在这太可怕了.为什么微软认为这是可以接受的超出我,但在Windows 8.1中有一个解决方法.如果你进入:

控制面板> Internet选项>隐私 http://i.stack.imgur.com/OSLS3.jpg

您可以设置cookie以便始终被接受.这是摆脱此消息并仍保留DOM解析功能的唯一方法.-UseBasicParsing对我来说不是一个解决方案,因为我想使用Invoke-WebRequest返回的功能而无需基本的解析.

但是现在在Windows 10中,Microsoft出于某种原因决定摆脱这个滑块:i.stack.imgur.com/jeNm3.jpg

可以在每台Windows 10计算机上重现此问题,并完全破坏在静默脚本环境中如何使用Invoke-WebRequest,因为脚本挂起并等待对话框得到应答.有没有办法让像所有人一样在8.1中设置Cookies?我尝试了Windows 10中的Internet选项中的每个设置,但没有任何关键.我相信他们已停止使用它,或许可能将其转移到别处,但我找不到它.Microsoft Edge也没有很多设置,因此它们都没有帮助.

这只是令人气愤.任何帮助都将受到高度赞赏,因为这将在许多环境中造成相当大的混乱.

小智 5

两个小补充: Invoke-Webrequest 似乎不会在 PoSH 会话中重新读取注册表设置,因此在更改注册表设置后,关闭 PowerShell 命令会话并在运行 IWR 之前重新打开它。

第二个只是两个命令,它们将添加注册表值(第一个)并在之后删除它(第二个),以便您可以将它们放入脚本中。这样,您就不必经常以“接受所有 cookie”模式运行 IE。

reg add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3" /t REG_DWORD /v 1A10 /f /d 0

reg delete "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3" /v 1A10 /f
Run Code Online (Sandbox Code Playgroud)


Joh*_*ith 4

经过几个小时的搜索,我发现即使Windows 10在Internet选项中不显示滑块,它仍然使用与其对应的注册表项。所以你所要做的就是改变:

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3 1A10 (Dword) 为 0,其中值与 Windows 8.1 中的滑块上的值相同: 阻止所有 Cookie:00000003 高:00000001 中 高:00000001 中: 00000001 低:00000001 接受所有 Cookie:00000000