由于我升级到
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"