Phi*_*ahl 14 forms powershell webrequest web
自从我升级到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
Run Code Online (Sandbox Code Playgroud)
我收到两个错误,第一个是在尝试写入"user"字段时:
无法索引到空数组.
$ form.Fields ["user"] ="用户名"
Run Code Online (Sandbox Code Playgroud)+ CategoryInfo : InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId : NullArray
第二个与$form.Action我不知道应该阅读的内容有关:
Invoke-WebRequest:无法验证参数'Uri'的参数.参数为null或空.提供非null或空的参数,然后再次尝试该命令.
我再次依赖微软的例子#2.
编辑:感谢hammar的资本化.我的举止在哪里?;)
Kei*_*ill 13
尝试直接做帖子,例如:
$formFields = @{username='john doe';password='123'}
Invoke-WebRequest -Uri $myUrl -Method Post -Body $formFields -ContentType "application/x-www-form-urlencoded"
Run Code Online (Sandbox Code Playgroud)
小智 7
要使用未签名/不可信证书解决您的问题,请添加该行
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}
Run Code Online (Sandbox Code Playgroud)
在Invoke-WebRequest语句之前
| 归档时间: |
|
| 查看次数: |
23060 次 |
| 最近记录: |