none
Mitglieder aller Verteilergruppen RRS feed

  • Frage

  • Hi liebe Community,

    folgendes Problem:

    ich soll aus allen unseren Verteilern die Mitglieder "rausziehen"...so weit so gut...aber dieses Output möchte ich als csv datei haben...

    folgendes Script:

    $OU=”OU-Name”
    foreach($group in Get-DistributionGroup -OrganizationalUnit $Ou){
    Get-DistributionGroupMember $group | select @{n=”DistributionGroup”;e={$group.name}},@{n=”MemberName”;e={$_.name}},alias,primarysmtpaddress | export-csv -path "verteiler.csv"
    }   aber dann bleibt der csv file leider leer...sobald ich die pipe export-csv wegnehme, bekomme ich den output, aber leider nur am screen...hat vielleicht irgendjemand eine idee?...gruss richard

    Mittwoch, 18. April 2012 14:38

Antworten

  • Hi jurkovri,

    was du da gefunden hast ist eine "function".

    Wenn du jetzt unter diese Funktion noch die Zeile

    get-dl

    schreibst sollte es eigentlich funktionieren ;-)

    Klaus
    • Als Antwort markiert jurkovri Donnerstag, 19. April 2012 09:33
    Donnerstag, 19. April 2012 08:31

Alle Antworten

  • Hi jurkovri,

    export-csv -path "verteiler.csv"

    wird die Datei denn erstellt?

    Probier einfach mal Get-Mailbox | Out-File c:\test.txt

    oder

    Get-Mailbox > c:\test.txt


    Viele Grüße
    Christian

    Mittwoch, 18. April 2012 15:02
    Moderator
  • Hallo jurkovri,

    ich denke das liegt daran, dass Du in der Schleife immer wieder in dieselbe Datei exportierst und diese damit ueberschreibst. Du koenntest das z.B. so machen:

    $file="c:\temp\groups.csv"
    get-distributiongroup | foreach {
     $group = $_.displayname
     Get-DistributionGroupMember $group | foreach {
      $alias = $_.alias
      $psmtp= $_.primarysmtpaddress
      $line = $group+";"+$alias+";"+$psmtp
      Add-Content $file $line
     }
    }

    Damit gewinnst Du zwar sicherlich kein Code-Wettbewerb (ich auch nicht :-)), aber es sollte das tun was Du moechtest.

    VG, Timo

    Mittwoch, 18. April 2012 15:50
  • Hi Timo,

    die geschweifte Klammer muss man ersteinmal sehen! :-)

    Vielleicht reicht es auch den Pipe hinter die letzt Klammer zu setzen. Müsste IMHO auch alles umleiten und nicht immer überschreiben...
     -- Viele Grüße
    Christian

    Mittwoch, 18. April 2012 15:57
    Moderator
  • Hallo jurkovri,

    speichere doch mal diese Zeilen als Script ab:

            Get-DistributionGroupMember | select @{n=”DistributionGroup”;e={$group.name}},@{n=”MemberName”;e={$_.name}},alias,primarysmtpaddress

    und rufe diese mit Parameter auf, also z.B.:

            ZeigeVerteiler.ps1 |  | Export-Csv -Path "C:\Temp\Verteilerlisten.csv" -notypeinformation

    Good Luck

    Klaus

    Donnerstag, 19. April 2012 05:52
  • Hi 2 all,

    @ Christian

    yep, ausgabe funktioniert aber wenn ich die Pipe hinter die letzte klammer setze =

    Ein leeres Pipeelement ist nicht zulässig.

    Bei C:\Users\juri\AppData\Local\Temp\101039e1-a859-49d6-8f8a-9403329c18db.ps1:5 Zeichen:4

    + } | <<<< export-csv -path "c:\temp\verteiler.csv"

    + CategoryInfo : ParserError: (:) [], ParseException

    + FullyQualifiedErrorId : EmptyPipeElement

    @ Timo

    yep, funktioniert, aber die Ausgabe ist nicht leider nicht besonders...:(

    @ KSV43

    funktioniert, aber die Identity bei 1923 Verteilern eingeben...;)

    Donnerstag, 19. April 2012 06:21
  • Hi again,

    was ich noch gefunden habe:

    function get-dl {
    $Final = @()
    $i = 1
    $dls = Get-DistributionGroup
     
    foreach ($dl in $dls)
    {
    $i++
    $AllUsers = @()
     
    $AllUsersEmail = @()
    $AllUsers += Get-DistributionGroupMember -Identity $dl | select recipientType,displayName,PrimarySMTPAddress
     
    foreach ($user in $Allusers)
    {
    $obj = new-object psobject
    $obj |Add-Member -MemberType noteproperty -Name "DL Gruppentyp" -value $dl.GroupType
    $obj |Add-Member -MemberType noteproperty -Name "DL Name" -value $dl.displayName
    $obj |Add-Member -MemberType noteproperty -Name "DL Adresse" -value $dl.PrimarySMTPAddress
    $obj |Add-Member -MemberType noteproperty -Name "Empfaenger Typ" -value $user.recipientType
    $obj |Add-Member -MemberType noteproperty -Name "Empfaenger Name" -value $user.displayName
    $obj |Add-Member -MemberType noteproperty -Name "Empfaenger Adresse" -value $user.PrimarySMTPAddress
     
    $AllUsersEmail += $obj
    }
     
    $Final += $AllUsersEmail
    }
     
    $Final | export-csv c:\verteiler\dl.csv -NoTypeInformation -encoding default
    Write-Host $i " Verteiler gefunden"
    }


    Nur leider rennt das Script ohne Fehler durch, aber ich bekomme keine Ausgabe...weiss vielleicht jemand, wo da der fehler ist?

    gruss

    Donnerstag, 19. April 2012 06:47
  • Hi jurkovri,

    mach es anders - starte eine Aufzeichnung bevor du das Script aufrufst und beende sie im anschluss:
    Start-Transcript -Path C:\test.txt -Append
    Stop-Transcript


    Viele Grüße
    Christian

    Donnerstag, 19. April 2012 08:21
    Moderator
  • Hi jurkovri,

    was du da gefunden hast ist eine "function".

    Wenn du jetzt unter diese Funktion noch die Zeile

    get-dl

    schreibst sollte es eigentlich funktionieren ;-)

    Klaus
    • Als Antwort markiert jurkovri Donnerstag, 19. April 2012 09:33
    Donnerstag, 19. April 2012 08:31
  • Hi,

    thx einmal an ALLE für die Hilfe...

    und DANKE an KSV43...das war es...;)...dann noch -resultsize unlimited und ich bekomme alle 1963 Verteiler...;)

    gruss und noch einen schönen tag

    richard

    Donnerstag, 19. April 2012 09:33