Invoke-WebRequest 使会话保持打开状态

Invoke-WebRequest Leaving Sessions Open

我写了一个脚本来登录客户网站。一切正常,但他们报告说他们从我使用的帐户中看到过时的会话。我不知道如何解决这个问题,因为我的 googlefu 没有返回任何内容。这是我写的代码:

$c = Get-Credential -credential ${CREDENTIAL}

$loginbase = 'http://${IP}'
$loginURL = $loginbase + '/AdminTools/querybuilder/'
$r = Invoke-WebRequest -Uri ($loginURL + 'logonform.jsp') -SessionVariable session

$form = $r.Forms[0];

$form.Fields['aps'] = '${Node.DNS}:6400';
$form.Fields['usr'] = $c.Username;
$form.Fields['pwd'] = SecureStringToString $c.Password;

$r = Invoke-WebRequest -Uri ($loginURL + $form.Action) -Method POST -Body $form.Fields -WebSession $session;

我已经盯着这个看太久了,只需要另一双眼睛将我推向正确的方向。

如果重要的话,我 运行 这个脚本有和没有会话变量。我最初的想法是会话导致会话保持打开状态,并且在尝试再次登录时会被重用。此外,这是监控解决方案的一部分,因此设置为每 120 秒尝试登录一次。

由于会话由网络服务器上的某些东西维护,您的脚本需要执行 "log out" 操作以允许网络服务器关闭您的会话。该网站的维护者应该有一个 URL 您可以调用一个请求,该请求将执行该注销操作并清理其服务器上的所有资源。