powershell invoke-webrequest登录网站

Mik*_*ike 7 forms powershell login web

我使用invoke-webrequest登录网站取得了很大的成功,但我很难过.我正在尝试登录https:// ctslink.comhttps:// direct.ctslink.com.登录表单有一个隐藏的令牌字段,每次我尝试登录时都会更改,我相信是导致问题的原因.我注意到的另一件事$fb是在第一次调用invoke-webrequest之后会话变量为null.

$r=Invoke-WebRequest www.ctslink.com -SessionVariable $fb

$form = $r.Forms[0]


$form.Fields["userId"] = "MyUsername"
$form.Fields["passwd"] = "MyPassword"

$r=Invoke-WebRequest 'https://ctslink.com/login.do' -WebSession $fb  -Body $form.Fields 
Run Code Online (Sandbox Code Playgroud)

迈克,非常感谢任何帮助

And*_*ndi 9

不要为会话变量参数添加$.试试这个 -

$c = $host.UI.PromptForCredential('Your Credentials', 'Enter Credentials', '', '')
$r = Invoke-WebRequest 'http://1.2.3.4/' -SessionVariable my_session
$form = $r.Forms[0]
$form.fields['username'] = $c.UserName
$form.fields['password'] = $c.GetNetworkCredential().Password
$r = Invoke-WebRequest -Uri ('http://1.2.3.4' + $form.Action) -WebSession $my_session -Method POST -Body $form.Fields
Run Code Online (Sandbox Code Playgroud)