none
Auf den Webseite nach einem bestimmten Wort/String suchen RRS feed

  • Frage

  • Hallo Zusammen

    Ich habe letzte Woche begonnen mit PowerShell zu skripten. Ich habe verschiedene Einführungsdokumente gelesen und Beispielaufgaben gelöst.

    Nun wollte ich mein erstes Skript schreiben. Ich will ein Überwachungsskript schreiben, welches folgende Punkte überwacht:
    - Verfügbarkeit einer Webseite (Es soll überprüft werden, ob bestimme Wörter/Strings verfügbar sind)
    - Verfügbarkeit von bestimmten Ports (HTTP, HTTPS, etc.)
    - Verfügbarkeit von bestimmten Services (SMTP, DNS, Domino, etc.)

    Ich habe mal mit dem Skript begonnen und habe folgendes:
    $ie = New-Object -com "InternetExplorer.Application"
    $ie.navigate("www.PSIE.ch")
    $ie.visible = $true
    $doc = $ie.document
    $StrText = "Test PSIE"
    $TITLE = $doc.getElementsByTagName("TITLE")

    Hier habe ich schon den ersten Fehler:
    You cannot call a method on a null-valued expression.
    At line:6 char:35
    + $TITLE = $doc.getElementsByTagName <<<< ("TITLE")
        + CategoryInfo          : InvalidOperation: (getElementsByTagName:String) [], RuntimeException
        + FullyQualifiedErrorId : InvokeMethodOnNull

    Woran kann das liegen?

    Grüsse PSIE


    • Bearbeitet PSIE Donnerstag, 14. Juni 2012 08:58
    Donnerstag, 14. Juni 2012 08:58

Antworten

  • Ich konnte es lösen! Ich habe anstelle von  "$TITLE = $doc.getElementsByTagName("TITLE")" das eingesetzt: $Title = $ie.Document.title

    $ie = New-Object -com InternetExplorer.Application
    $ie.navigate2("www.PSIE.ch")
    while($ie.busy) {sleep -Milliseconds 5}
    $ie.visible = $true
    $StrText = "PSIE"
    $Title = $ie.Document.title
    if($StrText -eq $TITLE) {write-host "Right"}
    else{write-host "False"}

    • Als Antwort markiert PSIE Donnerstag, 14. Juni 2012 13:17
    • Tag als Antwort aufgehoben PSIE Donnerstag, 14. Juni 2012 13:17
    • Als Antwort markiert PSIE Donnerstag, 14. Juni 2012 13:17
    Donnerstag, 14. Juni 2012 12:41

Alle Antworten

  • Sieh mal hier:

    http://social.technet.microsoft.com/Forums/de-DE/powershell_de/thread/a1cc617c-f6bc-429f-8c9d-88852f934992


    Please click “Mark as Answer” if my post answers your question and click Vote as Help if my Post helps you.
    Bitte markiere hilfreiche Beiträge von mir als Hilfreich und Beiträge die deine Frage ganz oder teilweise beantwortet haben als Antwort.
    My PowerShell Blog http://www.admin-source.info
    [string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '

    • Als Antwort vorgeschlagen Peter Kriegel Donnerstag, 14. Juni 2012 13:06
    • Nicht als Antwort vorgeschlagen Peter Kriegel Donnerstag, 14. Juni 2012 13:07
    • Als Antwort vorgeschlagen Peter Kriegel Freitag, 15. Juni 2012 05:59
    • Nicht als Antwort vorgeschlagen Peter Kriegel Donnerstag, 12. Juli 2012 06:24
    Donnerstag, 14. Juni 2012 10:31
  • Sieh mal hier:

    http://social.technet.microsoft.com/Forums/de-DE/powershell_de/thread/a1cc617c-f6bc-429f-8c9d-88852f934992

    Danke für die schnelle Antwort.

    Zwar kommt die Fehlermeldung nicht mehr, aber es klappt immer noch nicht.

    Ich habe jetzt folgenden Code:

    $ie = New-Object -com InternetExplorer.Application
    $ie.navigate2("www.PSIE.ch")
    while($ie.busy) {sleep -Milliseconds 5}
    $ie.visible = $true
    $StrText = "PSIE"
    $Title = $ie.Document.getElementsByTagName("TITLE")
    if($StrText -eq $TITLE) {write-host "Right"}
    else{write-host $TITLE}

    Wenn ich diesen Ausführe bekomme ich für die Variable $TITLE den Wert "System.__ComObject" statt den Text. Woher kommt das?

    • Als Antwort markiert PSIE Donnerstag, 14. Juni 2012 11:37
    • Tag als Antwort aufgehoben PSIE Donnerstag, 14. Juni 2012 11:37
    • Bearbeitet PSIE Donnerstag, 14. Juni 2012 12:33
    Donnerstag, 14. Juni 2012 11:37
  • Beim debuggen muss man in kleinen schritten vorgehen!

    Funktioniert denn folgender Code bei dir (als Administrator ausführen!):

    $ie = new-object -com internetexplorer.application
    $ie.visible=$true
    $ie.navigate2('www.unisg.ch')
    while($ie.busy) {sleep -Milliseconds 5}
    $ie.Document.all | foreach {$_}
    P.S. Nimm bitte um Code einzufügen, hier im Forum, die Codeeinfüge Möglichkeit!

    Please click “Mark as Answer” if my post answers your question and click Vote as Help if my Post helps you.
    Bitte markiere hilfreiche Beiträge von mir als Hilfreich und Beiträge die deine Frage ganz oder teilweise beantwortet haben als Antwort.
    My PowerShell Blog http://www.admin-source.info
    [string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '

    Donnerstag, 14. Juni 2012 12:02
  • Beim debuggen muss man in kleinen schritten vorgehen!

    Funktioniert denn folgender Code bei dir (als Administrator ausführen!):

    $ie = new-object -com internetexplorer.application
    $ie.visible=$true
    $ie.navigate2('www.unisg.ch')
    while($ie.busy) {sleep -Milliseconds 5}
    $ie.Document.all | foreach {$_}
    Ja, dieser funktioniert bei mir.
    • Als Antwort vorgeschlagen W-AM Samstag, 17. März 2018 23:40
    Donnerstag, 14. Juni 2012 12:34
  • Ich konnte es lösen! Ich habe anstelle von  "$TITLE = $doc.getElementsByTagName("TITLE")" das eingesetzt: $Title = $ie.Document.title

    $ie = New-Object -com InternetExplorer.Application
    $ie.navigate2("www.PSIE.ch")
    while($ie.busy) {sleep -Milliseconds 5}
    $ie.visible = $true
    $StrText = "PSIE"
    $Title = $ie.Document.title
    if($StrText -eq $TITLE) {write-host "Right"}
    else{write-host "False"}

    • Als Antwort markiert PSIE Donnerstag, 14. Juni 2012 13:17
    • Tag als Antwort aufgehoben PSIE Donnerstag, 14. Juni 2012 13:17
    • Als Antwort markiert PSIE Donnerstag, 14. Juni 2012 13:17
    Donnerstag, 14. Juni 2012 12:41
  •         Die Forenteilnehmer verwenden ihre Freizeit um anderen zu helfen.
            Trage bitte mit dazu bei, das dies so bleibt. Dazu gehört:
    • Hilfreiche Antworten mit der Funktion "Als hilfreich bewerten" (auf der linken Seite des Postings) zu "belohnen" .
    • Antworten, die deine Frage beantwortet haben oder zur Lösung deines Problems beigetragen haben, unten als "Antwort [zu] markieren".
    • Eine kurze Rückmeldung zu schreiben, ob das Problem gelöst wurde. Auch ein kurzes "Danke" schadet nicht. :)
    Habe ich dir nicht geholfen ??

    Please click “Mark as Answer” if my post answers your question and click Vote as Help if my Post helps you.
    Bitte markiere hilfreiche Beiträge von mir als Hilfreich und Beiträge die deine Frage ganz oder teilweise beantwortet haben als Antwort.
    My PowerShell Blog http://www.admin-source.info
    [string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '

    Freitag, 15. Juni 2012 06:01
  • >Habe ich dir nicht geholfen ??

    Nimms nicht persönlich wenn die Leute nicht markieren, Peter. Es gibt diverse Gründe warum das (nicht) passiert und die haben denke ich in den seltensten Fällen etwas mit Ignoranz oder gar bösem Willen zu tun.
     
    Grüße, Denniver


    Blog: http://bytecookie.wordpress.com

    Hilf mit und markiere hilfreiche Beiträge als "Hilfreich" und Beiträge die deine Frage ganz oder teilweise beantwortet haben als "Antwort".

    Samstag, 16. Juni 2012 14:09
    Moderator
  • Danke für den Trost Denniver! :-))

    Nicht jeder Blinde den man zu seinem Teller führt, erkennt das er ohne die Führung verhungert wäre!
    Essen kann er ja selbst. ;-))

    Ist nur manchmal frustrierend...


    Please click “Mark as Answer” if my post answers your question and click Vote as Help if my Post helps you.
    Bitte markiere hilfreiche Beiträge von mir als Hilfreich und Beiträge die deine Frage ganz oder teilweise beantwortet haben als Antwort.
    My PowerShell Blog http://www.admin-source.info
    [string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '


    Montag, 18. Juni 2012 06:11