PowerShell v3 Invoke-WebRequest:表单有问题

前端之家收集整理的这篇文章主要介绍了PowerShell v3 Invoke-WebRequest:表单有问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
由于我升级Windows 8,很多我依靠启动一个不可见的IE的PowerShell脚本将不再工作,所以我尝试切换到Invoke-WebRequest命令.我做了很多谷歌搜索,但仍然无法让我的脚本工作.

这是它应该做的:

用一个简单的表单加载一个网站(用户名,密码,提交按钮)
>输入凭据
>并提交.

随着微软技术网络难以置信的难题(至少对我而言)的“帮助”,我将以下几点结合在一起:

$myUrl = "http://some.url"  

$response = Invoke-WebRequest -Uri $myUrl -Method Default -SessionVariable $rb
$form = $response.Forms[0]
$form.Fields["user"]     = "username"
$form.Fields["password"] = "password"

$response = Invoke-WebRequest -Uri $form.Action -WebSession $rb -Method POST 
$response.StatusDescriptionOK

我收到两个错误,第一个尝试写入“用户”字段时:

Cannot index into a null array.

$form.Fields[“user”] = “username”

06001

第二个与$form.Action有关,我不知道应该读什么:

Invoke-WebRequest : Cannot validate argument on parameter ‘Uri’. The argument is
null or empty. Supply an argument that is not null or empty and then try the command
again.

再次,我非常依赖example #2 at Microsoft.

编辑:感谢哈密尔的资本化.我的礼仪在哪里;)

解决方法

直接尝试这样做:
$formFields = @{username='john doe';password='123'}
Invoke-WebRequest -Uri $myUrl -Method Post -Body $formFields -ContentType "application/x-www-form-urlencoded"

猜你在找的HTML相关文章