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"

相关文章

vue阻止冒泡事件 阻止点击事件的执行 <div @click=&a...
尝试过使用网友说的API接口获取 找到的都是失效了 暂时就使用...
后台我拿的数据是这样的格式: [ {id:1 , parentId: 0, name:...
JAVA下载文件防重复点击,防止多次下载请求,Cookie方式快速简...
Mip是什么意思以及作用有哪些