XML Powershell JavaScript

MrSlainkoenig

Lieutenant
Registriert
Nov. 2011
Beiträge
744
Hi,

ich habe in PowerShell ein Tool, welche ich um eine einfache Funktion erweitern möchte. Die Benutzeroberfläche soll dabei recht simpel gestaltet sein. Aktuell besitzt das Tool die Möglichkeit u.a. eine Seriennummer von einem angeschlossenen Gerät auszulesen.
Diese Variable soll nun in einer Online Datenbank abgeglichen werden. Momentan geschieht dies immer manuell, sprich über eine Website xml...da gibt man dann die SRnummer ein und bekommt entsprechend eine Antwort. Beispiel : Kunde XY hat für das Gerät folgende Optionen gekauft[...]
Soo...was mir fehlt ist das Wissen, wie ich die Kommunikation zw. meinem PS script und meiner website herstelle...sprich Variable(Srnr) ins "richtige" Textfeld schreiben...Enter....Antwort anzeigen.

Ich hoffe jemand kann mir weiterhelfen.
Vielen Dank.
 
Kommt drauf an wie die Anfrage auf der Webseite läuft. Kannst du einen Link schicken, oder ist die Seite nur im Intranet erreichbar?
 
Die Seite ist nur im Intranet verfügbar. Gerne kann ich aber Auszüge des Codes Posten. Dazu morgen mehr
 
Irgendwo in einem Formular auf der Webseite wird entweder über GET oder POST die Daten an eine URL gesendet. Jetzt könntest du direkt über Poweshell so eine Anfrage mit der Seriennummer durchführen und die Antwort verarbeiten, ohne über die Webseite bzw. das Formular dort zu gehen.

Du kannst das auch über die Developer Tools des Browsers herausfinden. Einfach die Webseite öffnen, jetzt F12 im Browser drücken und die Developer Tools öffnen sich. (Firefox oder Chrome, weiß nicht ob IE/Edge auch über F12 geht)
Dort gehst du in den Reiter "Network". Mit dem Reiter Network offen, füllst du die Seriennummer auf der Webseite ein und schickst das Formular ab. Jetzt erscheint die genau Abfrage inkl. der Daten wohin und welcher Inhalt gesendet wurde.
 
So sieht das dann aus:
tempsnip.jpg
 
Sind das schon die Requests wenn du das Formular ausfüllst und abschickst, oder wenn die Seite zum ersten Mal ladet?

Wir brauchen die Details zum aller ersten Request ganz oben in der Liste.
Einfach draufklicken, dann öffnet sich ein weiteres Fenster. Dort auf den Reiter "Headers" klicken und den Inhalt hierher kopieren.
 
Ach stimmt, ich logge mich ja auch vorher ein

Code:
Request URL: http://XXX.com/LicensingTools/opsmod/operator.cfm?tag=trboQuery&subtag=process
Request Method: POST
Status Code: 200 OK
Remote Address: 10.2.67.24:80
Referrer Policy: no-referrer-when-downgrade
Connection: Keep-Alive
Content-Encoding: gzip
Content-Type: text/html; charset=UTF-8
Date: Fri, 17 Aug 2018 07:52:28 GMT
Keep-Alive: timeout=5, max=100
Server: Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/1.0.0 JRun/4.0 DAV/2
Transfer-Encoding: chunked
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: de
Cache-Control: max-age=0
Connection: keep-alive
Content-Length: 85
Content-Type: application/x-www-form-urlencoded
Cookie: CFID=765417; CFTOKEN=28270980; MAGIC_CORE_ID=XXXXX; MAGIC_KEY=CE0DF9A0379A04571435C1BDD71D9B17; CFAUTHORIZATION_OpsMod_LicensingToolsopsmodApplicationcfm=dnFiazQ4DVB1cnR6ZWwyMDE5Iw1PcHNNb2RfTGljZW5zaW5nVG9vbHNvcHNtb2RBcHBsaWNhdGlvbmNmbQ==
Host: XXX.com
Origin: http://XXX.com
Referer: http://XXX.com/LicensingTools/opsmod/operator.cfm?tag=trboQuery&subtag=new
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36
tag: trboQuery
subtag: process
eid:
partno:
shipToEmail:
serialNo: XXXTSX7001
mot_po_num:
so_num:
customer_id:
state:
 
Ist da noch ein Login vorgeschaltet? Dann muss naemlich noch das Cookie mitgesendet bzw. ein Login simuliert werden.

PowerShell:
$postData = @{
    tag='trboQuery'
    subtag='process'
    eid=''
    partno=''
    shipToEmail=''
    serialNo='XXXTSX7001'
    mot_po_num=''
    so_num=''
    customer_id=''
    state=''
}

$result = Invoke-WebRequest -Uri 'http://XXX.com/LicensingTools/opsmod/operator.cfm' -Method POST -Body $postData

# Inhalt der Antwort ab hier weiter verarbeiten
write-output $result.Content
 
Hallo, genau. Der Login Name ist automatisch der PC name bzw der Name des Domänen Account, das Passwort sollte jeder Nutzer induviduell in dem Programm eingeben.
 
Zurück
Oben