要求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 就不会出现这个安全警告。
学以致用。