要求powershell的版本至少是3.0以上。
在我们使用PowerShell这个Windows工具的时候,也许会遇到怎么才能让在PowerShell窗口中发起的Http网络请求模拟一个真实的浏览器的问题。而这其中有两个必须知道的命令:invoke-webrequest和invoke-restmethod。因为只有这两个名封装了(-UserAgent)参数。可以为Web请求指定用户端请求类型。 UserAgent字符串具有“兼容性(平台;操作系统;文化)应用程序”格式,默认情况下,PowerShell 3.0在我的Windows7上将自身标识为“ Mozilla / 5.0(Windows NT; Windows NT 6.1; en-US)” 。
这时,我们如果要自定义用户代理字符串,可以指定什么类型的值呢?那就涉及到了[Microsoft.PowerShell.Commands.PSUserAgent]这个类的静态属性,它提供了一些预配置的值:
PS E:\> [Microsoft.PowerShell.Commands.PSUserAgent].GetProperties() |Select-Object Name, @{n='UserAgent';e={ [Microsoft.PowerShell.Commands.PSUserAgent]::$($_.Name) }}
Name UserAgent
---- ---------
InternetExplorer Mozilla/5.0 (compatible; MSIE 9.0; Windows NT; Windows NT 10.0; en-US)
FireFox Mozilla/5.0 (Windows NT; Windows NT 10.0; en-US) Gecko/20100401 Firefox/4.0
Chrome Mozilla/5.0 (Windows NT; Windows NT 10.0; en-US) AppleWebKit/534.6 (KHTML, like Gecko) Chrome/7.0.500.0 Safari/534.6
Opera Opera/9.70 (Windows NT; Windows NT 10.0; en-US) Presto/2.2.1
Safari Mozilla/5.0 (Windows NT; Windows NT 10.0; en-US) AppleWebKit/533.16 (KHTML, like Gecko) Version/5.0 Safari/533.16
我想大家应该知道怎么利用它了已经。
$userAgent = [Microsoft.PowerShell.Commands.PSUserAgent]::Chrome
Invoke-WebRequest http://baidu.com -UserAgent $userAgent

invoke-restmethod 就不会出现这个安全警告。

学以致用。
PowerShell网络请求与用户代理
本文介绍如何在PowerShell中使用invoke-webrequest和invoke-restmethod命令发起HTTP网络请求,并模拟真实浏览器。通过自定义用户代理字符串,可以指定请求来源为特定浏览器类型,如Chrome、Firefox等。
1035

被折叠的 条评论
为什么被折叠?



