none
Get-ADGroupMembers verbunden mit einer If Abfrage RRS feed

  • Frage

  • Hallo Leute,

    ich benötige für Auswertungszwecke von einer Gruppe alle Mitglieder mit diversen ADSI Attributen.

    Das habe ich bereits gelöst, folgendes ist noch ausständig:

    Ich benötige von den Gruppenmitgliedern zusätzlich noch den Manager, jedoch NUR wenn im ADSI-Attribut "employeeType" von den jeweiligen Mitgliedern "Ja" steht.

    Mit einer If Funktion würde ich hier wahrscheinlich nicht weiterkommen und mit -LDAPFilter kann man wohl nur die gesamte Domain abfragen. Ist das eventuell mit SearchBase möglich?

    Zusatz: Wäre es dann auch noch möglich diese beiden Commands (mit einem ist das mMn nicht realisierbar) in 1 CSV zu exportieren?

    Donnerstag, 2. Mai 2013 18:46

Antworten

  • Hallo,

    es waere viel leichter zu helfen, wenn der Fragende mehr Infos liefern wuerde. Mir ist nicht klar wie deine Userinfos pro Groupmeber aussehen usw.

    Hier einfach ein Beispiel, wo ich zwei Userobjekte in einer Tabelle ablege und and Hand des Attribut "employeeType" entscheide ob der Manger angezeigt wird oder nicht.

    Ich pipe die beiden Userobjekte gegen Select-Object und dort definiere ich eine Expression die den Manger anzeigt oder nicht.

    Beste Gruesse
    Martin

    $GroupMembers = @()
    $PSObject = New-Object PSObject
    $PSObject | Add-Member -MemberType NoteProperty -Name 'samAccountName' -Value "m.mustermann"
    $PSObject | Add-Member -MemberType NoteProperty -Name 'eMail' -Value "m.mustermann@irgendwas.local"
    $PSObject | Add-Member -MemberType NoteProperty -Name 'employeeType' -Value "Ja"
    $PSObject | Add-Member -MemberType NoteProperty -Name 'Manager' -Value "Manager 1"
    $GroupMembers += $PSObject
    $PSObject = New-Object PSObject
    $PSObject | Add-Member -MemberType NoteProperty -Name 'samAccountName' -Value "f.musterfrau"
    $PSObject | Add-Member -MemberType NoteProperty -Name 'eMail' -Value "f.musterfrau@irgendwas.local"
    $PSObject | Add-Member -MemberType NoteProperty -Name 'employeeType' -Value "Nein"
    $PSObject | Add-Member -MemberType NoteProperty -Name 'Manager' -Value "Manager 2"
    $GroupMembers += $PSObject
    $GroupMembers | Select-Object samAccountName, eMail, @{Name="Manager"; Expression={if ($_.employeeType -eq "Ja") {$_.Manager} }} | Export-Csv C:\test.csv

    Die Ausgabe wuerde dann so aussehen:

    samAccountName                          eMail                                   Manager
    --------------                          -----                                   -------
    m.mustermann                            m.mustermann@irgendwas.local            Manger 1
    f.musterfrau                            f.musterfrau@irgendwas.local

    in der CSV so

    "samAccountName","eMail","Manager"
    "m.mustermann","m.mustermann@irgendwas.local","Manger 1"
    "f.musterfrau","f.musterfrau@irgendwas.local",""

    Donnerstag, 2. Mai 2013 19:54

Alle Antworten

  • Hallo,

    es waere viel leichter zu helfen, wenn der Fragende mehr Infos liefern wuerde. Mir ist nicht klar wie deine Userinfos pro Groupmeber aussehen usw.

    Hier einfach ein Beispiel, wo ich zwei Userobjekte in einer Tabelle ablege und and Hand des Attribut "employeeType" entscheide ob der Manger angezeigt wird oder nicht.

    Ich pipe die beiden Userobjekte gegen Select-Object und dort definiere ich eine Expression die den Manger anzeigt oder nicht.

    Beste Gruesse
    Martin

    $GroupMembers = @()
    $PSObject = New-Object PSObject
    $PSObject | Add-Member -MemberType NoteProperty -Name 'samAccountName' -Value "m.mustermann"
    $PSObject | Add-Member -MemberType NoteProperty -Name 'eMail' -Value "m.mustermann@irgendwas.local"
    $PSObject | Add-Member -MemberType NoteProperty -Name 'employeeType' -Value "Ja"
    $PSObject | Add-Member -MemberType NoteProperty -Name 'Manager' -Value "Manager 1"
    $GroupMembers += $PSObject
    $PSObject = New-Object PSObject
    $PSObject | Add-Member -MemberType NoteProperty -Name 'samAccountName' -Value "f.musterfrau"
    $PSObject | Add-Member -MemberType NoteProperty -Name 'eMail' -Value "f.musterfrau@irgendwas.local"
    $PSObject | Add-Member -MemberType NoteProperty -Name 'employeeType' -Value "Nein"
    $PSObject | Add-Member -MemberType NoteProperty -Name 'Manager' -Value "Manager 2"
    $GroupMembers += $PSObject
    $GroupMembers | Select-Object samAccountName, eMail, @{Name="Manager"; Expression={if ($_.employeeType -eq "Ja") {$_.Manager} }} | Export-Csv C:\test.csv

    Die Ausgabe wuerde dann so aussehen:

    samAccountName                          eMail                                   Manager
    --------------                          -----                                   -------
    m.mustermann                            m.mustermann@irgendwas.local            Manger 1
    f.musterfrau                            f.musterfrau@irgendwas.local

    in der CSV so

    "samAccountName","eMail","Manager"
    "m.mustermann","m.mustermann@irgendwas.local","Manger 1"
    "f.musterfrau","f.musterfrau@irgendwas.local",""

    Donnerstag, 2. Mai 2013 19:54
  • Hallo Leute,

    ich benötige für Auswertungszwecke von einer Gruppe alle Mitglieder mit diversen ADSI Attributen.

    Das habe ich bereits gelöst

    Es wäre für uns hilfreich, wenn du diesen Code Posten könntest dann können wir dir besser helfen!

    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!

    Samstag, 4. Mai 2013 11:46
  • Beispiel:

    $group = Read-Host "Welche Gruppe soll abgefragt werden?"
    Get-ADGroupMember -Identity $group | Get-ADUser -Properties GivenName,Surname,DisplayName,sAMAccountName | Select-Object GivenName,Surname,DisplayName,sAMAccountName | Export-Csv $group.csv -Encoding UTF8 -Delimiter ";"

    Mehr wird bei meinem Script nicht benötigt (muss nur User tauglich sein)

    Mit dem Lösungsvorschlag von "brima" kann ich leider nichts anfangen, da ich nicht weiß wie ich mein Cmdlet in seinen Code "einsetzen" soll.

    Montag, 6. Mai 2013 19:33