2016-05-13 31 views
0

我正在製作Powershell腳本以從頁面獲取內容。該腳本正在工作,但頁面上有Ajax/Javascript頁面,我的Powershell腳本觸發了一個新的登錄窗口。這導致powershell腳本掛起,直到憑據被填入。帶Credential的Invoke-WebRequest將觸發頁面上的登錄表單並使用ajax

另一件可能有用的事情是,當我按下「取消」,我仍然返回頁面。

$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

你需要創建一個會話變量,然後使用該會話變量作爲-WebSession在未來調用-的WebRequest電話。

例子:

$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,然後從一個頁面傳遞到另一個頁面,而無需再次進行身份驗證。

相關問題