Jump to content

Powershell speichern einer ssl verschlüsselten xml Datei


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo zusammen,

 

ich habe folgendes Problem. Für das weiter Verarbeiten muss ich eine über die Powershell im IE aufgerufen zusammengebaute ssl verschlüsselten URL die angezeigte XML Datei speichern. Mein Script baut die URL korrekt zusammen, die SSL Warnung wird übergangen. Aber ich kann die Seite nicht abspeichern. Das funktionieren Script sieht so aus:

$ie = New-Object -ComObject InternetExplorer.Application
$ie.Visible = $true
$ie.Navigate($url1 + $name + $url2 + $ip + $url3)
while( $ie.busy){Start-Sleep 1} 
$secLink = $ie.Document.getElementsByTagName('A') | Where-Object {$_.innerText -eq 'Laden dieser Website fortsetzen (nicht empfohlen).'} 
$secLink.click() 

Hat jemand eine Idee - ich stecke an dieser Stelle schlichtweg fest. Schon mal Danke im Voraus.

 

Gruss

r.

Link zu diesem Kommentar

Hallo Dukel,

 

Danke für Deine Antwort. Um Deine Frage zu beantworten muss ich etwas ausholen.

Ziel des Scripts ist es, Citrix Server beim Start in die Überwachung automatisch zu übernehmen. Als Überwachung wird Naigios (SM-BOX falls das jemand kennt) eingesetzt. Diese ist über die REST Schnittstelle bedienbar indem man im IE eine URL aufruft. Ein Aufruf über einen anderen Webbrowser ist nach meiner Kenntnis nicht möglich. Die URL sieht wie folgt aus:

https://IP-Naigos/REST/nagios/addhost/apikey/useridentifer/host_name/$name/address/$ip/template/template-name

Die statischen Werte iiegen in Variablen die ich hier jetzt nicht aufgeführt habe. Das zusammenbauen der URL soll dynamisch erfolgen unabhängig auf welchem Host das Script ausgeführt wird, indem der Hostname und die IP ausgelesen werden und in eine Variable geschrieben wird. Mit der Übergabe der URL und dem Übergehen der Zertifikatsabfrage wird der Eintrag vorgenommen. Als Rückgabe wird eine xml Datei geliefert die ausgewertet werden soll um ein Log zu schreiben ob alles geklappt hat. Die Rückgabe sieht wie folgt aus:

 <statusObject>
     <stautsCode>0</statusCode>
     <message>ok</message>
 </statusObject>

Wie gesagt bis zu diesem Punkt habe ich das ganze fertig. Meine Überlegung ist es den Wert <message> auszuwerten und das Ergebnis in ein Log zu schrieben, damit ein Admin nachvollziehen kann ob der Eintrag erfolgt ist. Eine andere Möglichkeit zur Auswertung als speichern der Datei habe ich bisher nicht gefunden.

 

Man kann natürlich auch ohne dem Log das ganze schon benutzen – aber wenn die REST Schnittstelle einen Fehler liefert sehe ich das nur dann wenn ich das Script persönlich ausführe. Ziel ist es aber das ganze automatisch ohne Zutun eines Admins laufen zu lassen. In der weiteren Überlegung soll vorab geprüft werden ob der Server bereits in Nagios erfasst ist und gegebenenfalls automatisch das Skript ohne Abarbeitung beenden. Eine IF Abfrage und dem Ersetzen von addhost durch gethost/$name sollte dieses Problem dann lösen. Aber auch hier muss ich die zugegebene xml Datei auswerten.

 

Gibt es Deiner Meinung nach einen anderen Weg das Problem zu lösen?

 

Gruß

r.

Link zu diesem Kommentar

Entweder invoke-WebRequest oder .net http Request:

https://msdn.microsoft.com/en-us/library/system.web.httprequest%28v=vs.110%29.aspx

 

Den Zertifikatsfehler umgehst du, indem du das Zertifikat richtig machst, dass kein Fehler kommt.

Ein Workaround ist, das Zertifikat zu ignorieren:

https://newyear2006.wordpress.com/2014/07/26/bei-powershell-ssltls-zertifikate-prfung-einfach-ignorieren/

Link zu diesem Kommentar

OK dann baue ich das ganze mal um und melde mich danach noch mal ob es funktioniert hat.

 

Update

Wenn ich das ganze richtig verstehe ist invoke-WebRequest für die Powershell ab Version 3 verfügbar. Wir haben die Version 2 im Einsatz und das kann nicht geändert werden. Ebensowenig kann keine aktuelle Version .Net eingespielt werden. Derzeit setzen wir version 3.0 ein.

 

Soweit ich das sehe sind in dieser Konstallation der Einsatz Invoke-WebRequest bzw. dem WEB Client über dotNet nicht möglich. Oder sehe ich das falsch? 

bearbeitet von ramsess
Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...