Jump to content

checko0701

Members
  • Gesamte Inhalte

    5
  • Registriert seit

  • Letzter Besuch

Beiträge erstellt von checko0701

  1. Hallo,

     

    ich habe folgenden Code:

    #Ausgabe $object (Das Objekt wird durch Einlesen einer CSV-Datei erzeugt.)
    ip			url			id
    --			---			---
    192.168.1.2		www.google.de		75
    192.168.2.4		www.web.de		76
    
    #Code
    foreacch ($element in $object) {
    	Invoke-RestMethod -Method Post -Uri $url -Body $body -Headers $header -OutFile .\log.out
    }

    $url enthält hierbei die Zugriffsurl für meine Datenbank, $body enthält in JSON-Format alle wichtigen Informationen, damit die URL in den Eintrag mit der ID XY in meiner Datenbank ergänzt wird, $header enthält den für den Datenbankzugriff notwendigen Header.

     

    Das CmdLet Invoke-RestMethod gibt mir eine durch die API der Datenbank automatisch generierte Rückmeldung ("Url in den Eintrag XY erfolgreich eingetragen.") zurück, welche ich in die Datei log.out rausschreibe. Das Problem ist, dass scheinbar durch die foreach-Schleife die Datei log.out immer wieder überschrieben wird. ($objekt ist nur ein Ausschnitt aus der CSV-Datei. In meinem Skript lese ich die ganze Datei ein.) Wie kann ich das bewerkstelligen, dass jede Rückmeldung an die Datei log.out angehangen wird? $object wird im Skript weiter verwendet und sollte daher nicht überschrieben werden.

     

    Kann mir da jemand weiterhelfen?

     

    Viele Grüße,

    checko0701

  2. Hallo BofH_666,

     

    Das Objekt erzeuge ich durch eine Abfrage an die Rest-Api-Schnittstelle meiner Firewall:

     

    $result = Invoke-RestMethod -Method Get -Uri $url -ContentType "application/json ; charset=utf-8" -Headers $header -DisableKeepAlive
    $result = $result | Select-Object -ExpandProperty attr -Property URL

    $url enthält die Zugriffsurl für die Firewall, $header einen hierfür angepassten header.

     

    Die ID möchte ich durch eine Datenbank-Abfrage (Die Datenbank hat auch eine REST-API-Schnittstelle) erhalten, wobei ich die Zeile mit der IP-Suche. Das Unterprogramm hierfür habe ich noch nicht geschrieben. Für dieses Beispiel reicht es erstmal, wenn ich jeder Zeile eine Zufallszahl zwischen 1 und 100 zuordnen kann. D.h.:

     

    $id = get-random -Minium 1 -Maximum 100

     

    Ich möchte jetzt die Variable $id in das Objekt $result integrieren. Ich habe es so versucht:

     

    $result = Invoke-RestMethod -Method Get -Uri $url -ContentType "application/json ; charset=utf-8" -Headers $header -DisableKeepAlive
    $result = $result | Select-Object -ExpandProperty attr -Property URL
    
    foreach ($elem in $result) {
    	$id = get-random -Minimum 1 -Maximum 100
    	$elem | add-member -MemberType NoteProperty -Name "ID" -Value $id
    }
    
    $result #Ausgabe mit der ID

    Allerdings sehe ich in dem Objekt $result, dass in der Property ID keine Werte stehen. Wo ist mein Fehler?

     

    Gruß,

    checko0701

  3. Hallo,

     

    ich bin neu im Forum und habe gerade eine PowerShell-Schulung hinter mir. Ich komme auch ganz gut voran, aber jetzt habe ich folgendes Problem:

     

    Ich habe ein PSCustom-Objekt, welches wie folgt aussieht:

    ip                               prefixlen                                    url

    ---                             ---------                                    ---

    1.2.3.4                       32                                             www.web.de

    10.11.12.0                 24                                             www.google.de

    10.0.0.0                     8                                               www.youtube.de

     

    Ich möchte nun mit Hilfe eines Unterprogramms für jede Zeile des Objektes eine individuelle ID berechnen und diese in einer weiteren Property an das Objekt anhängen. Das Objekt soll danach also so aussehen:

    ip                               prefixlen                                    url                              id

    ---                             ---------                                    ---                             ---

    1.2.3.4                       32                                             www.web.de               23

    10.11.12.0                 24                                             www.google.de           42

    10.0.0.0                     8                                               www.youtube.de         3

     

    Wie stelle ich das an? Ich wäre euch für Eure Hilfe sehr dankbar.

     

    Viele Grüße,
    checko0701

×
×
  • Neu erstellen...