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