johnny-cgn
Goto Top

Powershell, Download einer Datei, nach Login auf Webseite

Liebe Administratoren,
wie in meiner letzten Frage schon einmal erwähnt, arbeite ich mich gerade erst auf meinem WinServer 2012 und dessen Powershell 4.0 ein, und bitte daher um Nachsicht, für zu viel Torheit.

Kurz die Problemstellung umrissen:
Ich möchte gerne eine Datei per HTML-Download herunterladen. Die Seite erfordert jedoch einen vorrigen Login.
Per Internetexplorer komme ich an die Datei, finde die Variante aber noch denkbar wenig elegant.
$Url = “www.webseite.de”
$url_dl = “https://www.webseite.de/ItemExport/”
$Username=”mail@adresse.de”
$Password=”0815passwort”

$IE = New-Object -com internetexplorer.application;
$IE.visible = $true;
$IE.navigate($url);
while ($IE.Busy -eq $true)
{
Start-Sleep -Milliseconds 2000;
}

$IE.Document.getElementById(“infoBarLoginName”).value = $Username
$IE.Document.getElementByID(“infoBarLoginPassword”).value=$Password
$IE.Document.getElementById(“infoBarLoginButton”).Click()

while ($IE.Busy -eq $true)
{
Start-Sleep -Milliseconds 2000;
}
$IE.navigate($url_dl);

Ich würde das ganze gerne ohne die Krücke Internetexplorer lösen, habe aber bisher kein Pendant für das folgende gefunden:
$IE.Document.getElementById(“infoBarLoginName”).value = $Username

Der Versuch, das ganze per Invoke-WebRequest zu lösen, stellt sich wegen der Feldnamen scheinbar nicht als ganz leicht herraus:
$dig = Invoke-WebRequest http://www.webseite.de -SessionVariable session
$dig.Forms[1].Fields
$dig.Forms[1].Fields["infoBarLoginName"] = "mail@adresse.de"  
$dig.Forms[1].Fields["nfoBarLoginPassword"] = "0815passwort"  
$log = Invoke-WebRequest -Method POST -URI ("https://www.webseite.de" + $dig.Forms[1].action) -Body $dig.Forms[1].Fields -WebSession $session  

Hierbei bekomme ich zurück, der Remotename könne nicht aufgelöst werden. Und soweit, die Datei danach herunterzuladen, nit der selben Session-Id bin ich wohl auch noch lange nicht

Was übersehe ich?

Zur Info.. Die Felder sehen wie folgt aus, das
<input name="login" id="infoBarLoginName" onfocus="if (this.value == 'E-Mail-Adresse') this.value = '';" type="text" value="E-Mail-Adresse">  
<input name="password" id="infoBarLoginPassword" onfocus="if (this.value == 'Passwort') this.value = '';" type="password" value="Passwort">  
<input class="inputButton" id="infoBarLoginButton" type="image" src="http://www.atixo.de/images/btn_go.gif">  

Content-Key: 297970

Url: https://administrator.de/contentid/297970

Printed on: April 19, 2024 at 03:04 o'clock

Mitglied: 114757
114757 Mar 02, 2016 updated at 22:43:31 (UTC)
Goto Top