带Credential的Invoke-WebRequest将在具有ajax

时间:2016-05-13 09:36:08

标签: ajax powershell login

我正在制作一个Powershell脚本来从页面获取内容。该脚本正在运行,但页面上有Ajax / Javascript的页面,我的Powershell脚本触发了一个新的登录窗口。这会导致powershell脚本挂起,直到填写凭据。

另一件可能有用的事情是,当我按下"取消"时,我仍然会收回页面。

$username = ''
$password = ''
$usr =  $username
$pwd = $password | ConvertTo-SecureString -asPlainText -Force

$cred = New-Object System.Management.Automation.PSCredential($usr,$pwd)
$page = Invoke-WebRequest "" -DisableKeepAlive $false -Credential $cred -        TimeoutSec 30

$page

1 个答案:

答案 0 :(得分:1)

您需要创建会话变量,然后在将来的 invoke-webrequest 调用中将该会话变量用作 -WebSession

示例:

$my_domains_start = Invoke-WebRequest -Uri "https://some_url" -SessionVariable cookie
$my_domains = Invoke-WebRequest -Uri ( $page.forms[2].Action ) -WebSession $cookie -Method POST -Body $my_domains_start.forms[2].fields

请注意,将根据您通过身份验证的页面的登录字段进行自定义,因为每个站点都不同但简而言之,您应该能够继续使用websession并从页面传递到页面而不必再次进行身份验证。