none
import-csv verschachtelt RRS feed

  • Frage

  • Hallo,

    in einem PS-Script möchte ich zwei csv-Dateien einlesen und für jedes Objekt aus Tabelle 1 mit jedem Objekt aus Tabelle 2 einen Befehl ausführen.

    Konkret:

    Für jede Verteilergruppe (aus Tabelle 1) möchte für jede Mailadresse (aus Tabelle 2) das Recht setzen, an diese Gruppe zu senden.

    import-csv Verteilergruppen.txt |Select-Object Name  |  ForEach-Object{

    Set-DistributionGroup $_.Name import-csv Benutzer.txt -Delimiter “;” |  ForEach-Object{
     AcceptMessagesOnlyFromSendersOrMembers $_.Mail
    }}

    Irgendwo habe ich noch Probleme mit der Syntax, denn Set-DistributionGroup hat als Option AcceptMessagesOnlyFromSendersOrMembers und bräuchte ein - dazwischen.

    Wie löst man dies?
    Vielen Dank
    M. Tobeck

    Sonntag, 18. August 2013 06:25

Antworten

  • Hallo Markus !

    import-csv Verteilergruppen.txt |Select-Object Name  |  ForEach-Object{
    
        # das Aktuelle Objekt $_ in der Pipeline (Ebene 1), in die Variablen $VerteilerGruppe übertragen
        # da in der nächsten verschachtelten Pipelin das $_ wieder einen anderen Inhalt hat
        $VerteilerGruppe = $_
        
        # hier begint eine neue Pipeline (Ebene 2) diese hat wieder ein eigenes $_ Objekt mit anderen Inhalten als in Ebene 1 !
        Import-CSV Benutzer.txt -Delimiter “;” |  ForEach-Object{
        
            # Indirekte Nutzung des Objektes $_ aus der Pipeline Ebene 1 durch die Variable $VerteilerGruppe. 
            # $_ beinhaltet nun das objekt von der Pipeline Ebene 2 
            Set-DistributionGroup $VerteilerGruppe.Name -AcceptMessagesOnlyFromSendersOrMembers $_.Mail
        }
    
        # hier sind wir wieder in der Pipeline Ebene 1 (VerteilerGruppe) und könnten das $_ Objket wieder direkt aus dieser nehmen
        # z.B. $_.Name 
    
    }

    Bitte schreibe deine Code mit einrückungen, dann sieht man besser was ineinander geschachtel wurde!
    Du schreibst ja auch nicht ohne Punk und Komma!? Das wird unleserlich!
    http://de.wikipedia.org/wiki/Einr%C3%BCckungsstil

    http://tut.php-quake.net/de/indent.html

    Benutze bitte hier im Forum die Funktion „Codeblock einfügen “ („</>“ -Symbol oben rechts).


    Please click “Mark as Answer” if my post answers your question and click “Vote As Helpful” if my Post helps you.
    Bitte markiere hilfreiche Beiträge von mir als “Als Hilfreich bewerten” und Beiträge die deine Frage ganz oder teilweise beantwortet haben als “Als Antwort markieren”.
    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' '
    German ? Come to German PowerShell Forum!



    Sonntag, 18. August 2013 08:01