2016-05-20 15 views
0

私はこれまでに発見した約12の提案を試しました。私は働くためにいくつかのウェブサイトを得ることができますが、私が本当に必要とするものではありません。ウェブサイトにログインするPowerShellスクリプト

これは、私が使用してマイナスURLてるものです:

$username="myname" 
$password="mypass" 

$ie = New-Object -ComObject InternetExplorer.Application 
$ie.Visible = $true 
$ie.navigate($url) 

Start-Sleep -Milliseconds 5000 

$ie.Document.getElementByID("uname").value = $username 
$ie.Document.getElementByID("adminloginpassword").value = $password 

私は入れません:あなたはヌル値式のメソッドを呼び出すことはできません。

以下は、要素を調べた情報です。残念ながら、私はPowerShellを完全に新しくしていますので、どんな助けでも大歓迎です。

<form action="processAdminLogin.sdi" method="POST" enctype="application/x-www-form-urlencoded" name="login" onsubmit="return toggleContinueImage(this)" target="_top"> 
<input type="hidden" name="initial_function" value=""> 
<div class="login-shadow-square" style="width: 450px;"> 
<table cellspacing="0" cellpadding="8" class="adminLogin"> 

<tbody><tr><td colspan="2">&nbsp;<br></td></tr> 

<tr> 
<td class="lbl"><label for="uname" class="adminLoginText">Username</label></td> 
<td align="left"><input type="text" name="uname" id="uname" value="" size="25" maxlength="25"></td> 
</tr> 
<tr> 
<td class="lbl"><label for="adminloginpassword" class="adminLoginText">Password</label></td> 
<td align="left"><input type="password" name="adminloginpassword" id="adminloginpassword" size="25" maxlength="25" autocomplete="off"></td> 
</tr> 
<tr> 
<td></td> 
<td class="smaller" align="left"><input type="checkbox" name="remember" id="remember"><label for="remember" class="adminLoginText">Remember my username on this computer.</label></td> 
</tr> 
<tr> 
<td></td> 
<td align="left"> 
<script type="text/javascript" language="JavaScript">document.write("<input type='image' value='Submit' src='//u 
</td> 
</tr> 
</tbody></table> 
</div> 
+0

他のURL(要素に他のIDを使用)を使用しようとしましたか? PowerShellを管理者として実行しましたか?イントラネット上のURLですか?その5秒で十分ですか?おそらくそれは遅く、その値を増やす必要があります。 –

+0

検査された要素は '$ url'の中か、ログインポップアップウィンドウの中から取ったものですか? – JosefZ

+0

私はWebサイトとIE上で右クリックしてInspect Elementを取得しました。私はいくつかの他のウェブサイトを正常に動作させてきました。 Gmail、Facebookなど。このサイトに問題があります。イントラネットサイトではありません。待ち時間を増やしたり、$ ie.busyを使用してみることもお勧めします。 –

答えて

0

5秒間スリープ状態にする代わりに、IEがビジー状態で、スリープ状態になっていないかどうかを確認します。同様に、

while($ie.Busy) { Start-Sleep -Milliseconds 100 } 

また、オブジェクトを操作しようとする前にオブジェクトが存在するかどうかを確認することをお勧めします。それが存在しなければ、リロードが順調であるかもしれない。

+0

私は別のバージョンでは、私の悪い部分を持っていた。私はそれを使用したときに切断エラーが発生しました:呼び出されたオブジェクトがクライアントから切断されました。それが存在するかどうかを確認する上で何を意味するのか分かりませんか?私はサイトが来るのを見ているし、Inspect Elementからオブジェクト名を得ている。 –

関連する問題