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.
Ich würde das ganze gerne ohne die Krücke Internetexplorer lösen, habe aber bisher kein Pendant für das folgende gefunden:
Der Versuch, das ganze per Invoke-WebRequest zu lösen, stellt sich wegen der Feldnamen scheinbar nicht als ganz leicht herraus:
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"