Invoke-WebRequest Выход из сеансов открыт

Я написал скрипт для входа на сайт клиентов. Все работает просто отлично, но они сообщили, что видят устаревшие сеансы из учетной записи, которую я использую. Я не знаю, как это исправить, так как мой 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 секунд.

1 ответ

Решение

Поскольку сеанс поддерживается чем-то на веб-сервере, ваш сценарий должен выполнить действие "выйти из системы", чтобы веб-сервер мог закрыть ваш сеанс. Сопровождающий этого веб-сайта должен иметь URL-адрес, по которому можно вызвать запрос, по которому будет выполнено это действие по выходу из системы и очистить все ресурсы на их сервере.

Другие вопросы по тегам