Matze1708 10 Geschrieben 7. März 2017 Melden Teilen Geschrieben 7. März 2017 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 Zitieren Link zu diesem Kommentar
Matze1708 10 Geschrieben 8. März 2017 Autor Melden Teilen Geschrieben 8. März 2017 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. Zitieren Link zu diesem Kommentar
NilsK 2.957 Geschrieben 8. März 2017 Melden Teilen Geschrieben 8. März 2017 Moin, schön, danke für die Rückmeldung. Bezüglich des Rückgabewerts: Es dürfte doch viel einfacher sein, den Status in eine eigene Logdatei zu schreiben. Die kannst du dann auch leichter auswerten, und das Format kannst du auch nach eigenem Bedarf steuern. Gruß, Nils Zitieren Link zu diesem Kommentar
magheinz 110 Geschrieben 8. März 2017 Melden Teilen Geschrieben 8. März 2017 (bearbeitet) 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 8. März 2017 von magheinz Zitieren Link zu diesem Kommentar
Matze1708 10 Geschrieben 14. März 2017 Autor Melden Teilen Geschrieben 14. März 2017 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? Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.