微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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"

原文地址:https://www.jb51.cc/html/223813.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐