Откройте веб-сайт и войдите в систему, обновляя страницу каждые 30 секунд.

Я хотел бы настроить сценарий для входа в определенный вид дисплея SolarWinds и непрерывного обновления страницы каждые 30 секунд. Я проверил несколько других образцов кода, и мой выглядит неплохо, но не работает.

Мои проблемы: автоматический вход не работает, в поля ничего не вводится и кнопка входа не нажимается. Я также не могу понять, как заставить его обновлять страницу вместо того, чтобы каждый раз открывать новую.

Любая помощь приветствуется!

Вот мой код:

$Run = 1

do {

#Create the IE com object to be used for logging into SAM
$ie = new-object -com InternetExplorer.Application 
$ie.visible = $true
$ie.ToolBar = $false
#$ie.Width = 1300
#$ie.Height = 1000
$ie.FullScreen = $true
$ie.Left = 0
$ie.Top = 0
$SolarWinds = "http://SolarWindsServer/Orion/Login.aspx"
$username = "username"
$password = "password"

$ie.navigate($SolarWinds)
do {
    Sleep 1000
   }while ($ie.Busy -eq "True")

sleep 30

#Find the username field and enter username 
$ie.Document.getElementById('ctl00_BodyContent_Username').value = $username;

#Find the password field and enter password
$ie.Document.getElementById('ctl00_BodyContent_Password').value = $password;

#Find and click the submit button 
$ie.Document.getElementById('SiteLoginText').submit() 

do {
    Sleep 5
   }while ($ie.Busy -eq "True")

sleep 30
}while ($Run -eq 1)

Во-первых, я получаю эти ошибки, поэтому похоже, что логин не работает:

Вы не можете вызвать метод для выражения с нулевым значением. В папке C: \ Users \ me \ Desktop \ SAMTEST.ps1: 25 символов: 28 + $, т.е..Document.getElementById ‹**** ('ctl00_BodyContent_Username'). Value = $ username; + CategoryInfo: InvalidOperation: (getElementById: String) [], RuntimeException + FullyQualifiedErrorId: InvokeMethodOnNull

Вы не можете вызвать метод для выражения с нулевым значением. В папке C: \ Users \ me \ Desktop \ SAMTEST.ps1: 28 символов: 28 + $, т.е..Document.getElementById ‹*** ('ctl00_BodyContent_Password'). Value = $ password; + CategoryInfo: InvalidOperation: (getElementById: String) [], RuntimeException + FullyQualifiedErrorId: InvokeMethodOnNull

Вы не можете вызвать метод для выражения с нулевым значением. В папке C: \ Users \ me \ Desktop \ SAMTEST.ps1: 31 символ: 28 + $ ie.Document.getElementById ‹*** ('SiteLoginText'). Submit () + CategoryInfo: InvalidOperation: (getElementById: String) [] , RuntimeException + FullyQualifiedErrorId: InvokeMethodOnNull

Вот фрагмент кода из источника страницы:

<div id="gutter">
    <div id="dialog"><span class="crn crn-tl"></span><span class="crn crn-tr"></span><span class="crn crn-bl"></span><span class="crn crn-br"></span>
        <img id="logo" src="/orion/images/login_logo.png" width="182" height="50" alt="SolarWinds" />



        <div>
            <label for="username">User name:</label><div><input name="ctl00$BodyContent$Username" type="text" id="ctl00_BodyContent_Username" tabindex="1" automation="username" /></div>
        </div>

        <p class="sw-pg-suggestion">Enter domain\username or username@domain for windows accounts</p>

        <span id="ctl00_BodyContent_ctl04" class="sw-pg-errortext sw-validation-error" style="display:none;">
            <p>User name is required.</p>
        </span>

        <div>
            <label for="password">Password:</label><div><input name="ctl00$BodyContent$Password" type="password" id="ctl00_BodyContent_Password" tabindex="2" automation="password" /></div>
        </div>



        <div class="sw-btn-bar">
            <a tabindex="3" class=" sw-btn-primary sw-btn" automation="Login" href="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;ctl00$BodyContent$ctl05&quot;, &quot;&quot;, true, &quot;&quot;, &quot;&quot;, false, true))"><span class="sw-btn-c"><span class="sw-btn-t">Login</span></span></a>
        </div>
    </div>




    <div id="CookiesNotWorking" class="sw-pg-errortext sw-pg-align" style="display:none;"><p>Enable cookies to login</p></div>
    <noscript><div class="sw-pg-errortext sw-pg-align"><p>Enable JavaScript to login</p></div></noscript>

    <p id="SiteLoginText"></p>
</div>

person bbinnebose    schedule 23.08.2013    source источник
comment
У вас есть версия Powershell 2, 3 или 4 (бета)?   -  person Colyn1337    schedule 23.08.2013
comment
v2 - это сервер, на котором он будет работать. Это сервер Windows XP Pro SP3, который используется только для экрана проектора.   -  person bbinnebose    schedule 23.08.2013


Ответы (1)


Возможно, вам будет лучше просто указать учетные данные в URL-адресе. См. Мой ответ здесь: Автоматически аутентифицироваться в SolarWinds и просмотр данных с помощью URL

person Tim Danner    schedule 14.02.2014