Jump to content

Powershell Webrequest


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 ein Skript mit dem ich einen Webrequest zu einem Skript herstelle. Das Skript erledigt mit ein paar Sachen für eine Telefonanlage.

 

Das Skript läuft auf einem IIS8.5 mit PHP 7

 

aktuell ist die Site noch Anonym zuerreichen. Daher läuft mein Skript auch noch problemlos. Als wir Heute auf Windows Authentifizeirung umstellen .. War schnell klar das mein Skript nicht mehr so läuft wie es soll.

param(
[string]$HL)



$urlpart1 = "http://xxxx/cfw_Masse.php?HL="
$urlCall = $urlpart1+$HL
 

$httprequest=[system.Net.HttpWebRequest]::Create($urlCall);
$data = $httprequest.getresponse();
$stat = $data.statuscode;
$data.Close(); 

Im Netz habe ich was schönes gegoogelt und etwas angepasst, da mir das Skript sogar einen Status zurück gibt. Ob mir das was in der Aufgabenplanung bringt weiss ich nicht.

param(
[string]$HL)



$urlpart1 = "http://sastest.uni-gruppe.intra/cfw/cfw_Masse.php?HL="
$urlCall = $urlpart1+$HL

$username = "User"
$pw = "Passwort"
$domain = "Domain"

$req = [system.Net.WebRequest]::Create($urlCall)
#$req.Credentials = new NetworkCredential($username, $pwd, $domain); 
$req.UseDefaultCredentials = $true
try
{
    $res = $req.GetResponse()
}
catch [System.Net.WebException]
{
    $res = $_.Exception.Response
}

$int = [int]$res.StatusCode
$status = $res.StatusCode
return "$int $status"

Aber er wirft mir einen Fehler mit dem new Networkcredential aus.

 

 

 

new : Die Benennung "new" wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei oder eines ausführbaren Programms erkannt. Überprüfen Sie die Schreibweise des Namens, oder ob

der Pfad korrekt ist (sofern enthalten), und wiederholen Sie den Vorgang.

In C:\PS_Skript\umleitungLogin.ps1:14 Zeichen:20

+ $req.Credentials = new NetworkCredential($username, $pwd, $domain);

+ ~~~

+ CategoryInfo : ObjectNotFound: (new:String) [], CommandNotFoundException

+ FullyQualifiedErrorId : CommandNotFoundException

 

 

habt ihr da eine Idee für mich wie ich das passend hin bekomme?

 

Vielen Dank Gruß Matthias

Link zu diesem Kommentar

Hallo,

 

ich habe es!

 

ALso zumindest der Code ist jetzt funktional.

 

Es muss heißen

param(
[string]$HL)



$urlpart1 = "http://XXX/cfw/cfw_Masse.php?HL="
$urlCall = $urlpart1+$HL


$username = "User"
$password = "PASS" | ConvertTo-SecureString -asPlainText -Force

$req = [system.Net.WebRequest]::Create($urlCall)
$req.Credentials = new-object System.Net.NetworkCredential($username, $password); 
#$req.UseDefaultCredentials = $true
try
{
    $res = $req.GetResponse()
}
catch [System.Net.WebException]
{
    $res = $_.Exception.Response
}

$int = [int]$res.StatusCode
$status = $res.StatusCode
return "$int $status"

Was leider noch nicht geht. Aber vielleicht gibt's das auch nicht.

 

Das ich im Verlauf vom Taskplaner erkennen kann ob der AUfruf ok war oder nicht ....Sprich den return Code in dem Verlauf anzeigen lassen.

Link zu diesem Kommentar
Was leider noch nicht geht. Aber vielleicht gibt's das auch nicht.

 

Das ich im Verlauf vom Taskplaner erkennen kann ob der AUfruf ok war oder nicht ....Sprich den return Code in dem Verlauf anzeigen lassen.

Bekommst du eine Fehlermedlung?

Eventuell muss die Variable $res vor dem try deklariert werden.

bearbeitet von magheinz
Link zu diesem Kommentar

Hallo,

 

ich habe noch mal eine kleine Verständnis Frage,

 

zu erst, Das Skript logt jetzt immer mit, dazu musste ich noch HTTP Authentifizierung einfügen.

$urlpart1 = "http://xxxxx/cfw/cfw_Masse.php?HL="
$urlCall = $urlpart1+$HL


$username = "XXXX"
$password = "XXX" | ConvertTo-SecureString -asPlainText -Force

$req = [system.Net.WebRequest]::Create($urlCall)
$req.Credentials = new-object System.Net.NetworkCredential($username, $password); 
#$req.UseDefaultCredentials = $true
try
{
    $res = $req.GetResponse()
}
catch [System.Net.WebException]
{
    $res = $_.Exception.Response
}

$int = [int]$res.StatusCode
$status = $res.StatusCode




$LogFile = "C:\PS_Skript\log.log"
$FileExists = Test-Path $LogFile
    $DateNow = Get-Date -Format "dd.MM.yyyy HH:mm:ss" # Ermittelt das aktuelle Datum mit diesem Syntax 01.10.2013 10:00
    $FileInp = $DateNow + ' | ' + "Aufruf Umleitungstelefone, Status Code: "+$int+" "+$status                          # Setzt die Zeile für unser Logfile zusammen
    If ($FileExists -eq $True){ # Wenn dir Datei existiert reinschreiben
        Add-Content $LogFile -value $FileInp  # Zeile hinten an die vorhanden Einträge anhängen
    } else {
       New-Item $Logfile -type file # Wenn dir Datei nicht existiert anlegen
       Add-Content $LogFile -value $FileInp # und reinschreiben
    }



return "$int $status"


Was ich aber gern machen würde, das ich 2 Seiten über dieses Skript aufrufe. Geht das? Wie muss ich das tun?

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...