Jump to content

TobiBe92

Members
  • Gesamte Inhalte

    10
  • Registriert seit

  • Letzter Besuch

Beiträge erstellt von TobiBe92

  1. vor 8 Minuten schrieb BOfH_666:

     

    Hmmm ... das Konzept einer Internet-Suchmaschine ist Dir bestimmt geläufig, oder?  ;-)   Als Aller-Aller-Erstes, wenn Du etwas nicht weißt, solltest Du versuchen, darüber selbst etwas rauszufinden. Erst wenn Du damit wirklich nicht weiterkommst, fragst Du jemanden, der es wissen könnte.  ;-);-)  :achtung:

     

    Davon unabhängig ... was könnte denn das Wort "SearchBase" in so einem technischen Zusammenhang bei Thema Active Directory bedeuten?  ;-) :hmmm:

    :)) Also Searchbase ist vermutlich der Bereich in dem Gesucht werden soll, Man kann dort zumindest angeben, dass nur Konten aus bestimmten OU (organizational Units) ausgegeben werden sollen? :D

  2. vor 17 Minuten schrieb BOfH_666:

    OK, ich glaube zwar, dass diese Frage eher in das Scripting-Unterforum gehört, aber damit wir hier endlich mal zu Potte kommen, hier mal eine Idee von mir.  ;-) 

     

    Wenn ich das nicht falsch verstanden habe, möchtest Du alle User die in mindestens einer Gruppe sind, deren Name mit dem Buchstaben "V" beginnt, dem 8 beliebige Ziffern folgen, richtig?

    Ich würde in diesem Fall einfach nach den Gruppen suchen, die diese Bedingung erfüllen und dann deren Mitglieder auflisten. 

     

    
    $SearchBase = 'OU=Berlin,OU=Germany,OU=Europe,DC=contoso,DC=com'
    
    $GroupMemberList = 
    Get-ADGroup -Filter "Name -like 'V*'" -SearchBase $SearchBase |
        Where-Object -Property Name -Match -Value  '^v\d{8}' |
            ForEach-Object {
                Get-ADGroupMember -Identity $_.sAMAccountName
            }

     

    Da zu erwarten ist, dass einige Konten mehrfach auftauchen, kannst Du entweder direkt ein "| Select-Object -Unique" anhängen oder es in einem zweiten Schritt machen:

    
    $GroupMemberList | Select-Object -Unique

     

    Edit:

     

    Achja ... falls Du für die Lösung der Aufgabe ein Lob bekommen solltest, möchte ich, dass Du sagst, dass Du das nicht allein geschafft hast und dass Du dieses Forum hier erwähnst!!!!!  

     

    ... und es wäre empfehlenswert - besonders für Dich selber - wenn Du versuchst, zu verstehen, was genau der Code tut.  ;-)  :achtung: 

    Hallo,

     

    vielen lieben Dank für die Mühe :). Also die wissen schon, dass ich in einem Forum nachgefragt habe, bin generlel kein Mensch der Credit für die Arbeit anderer sammelt. Werde natürlich gerne auch das Forum explizit erwähnen :).

     

    Leider hat die Lösung nicht funktioniert.

     

    Also ich verstehe den Code insofern, dass eine Liste erstellt werden soll mit dem Namen Groupmemberlist, dort soll eine ADGruppe gesucht werden, die mit dem Namen V* beginnt 

     

    Searchbase sagt mir jetzt nichts

     

    dabei soll alles ausgespuckt werden, bei dem die Gruppe folgende Kriterien erfüllt, Buchstabe V und 8 Ziffern folgend, das dann in einer Schleife für jedes Objekt.

     

    Mit Get-ADgroupMember soll dann der jeweilige User der Gruppen angezeigt werden.

     

    Soweit zum Verständnis :) bitte korrigieren falls ich etwas falsch interpretiert habe.

     

     

    Die Fehlermeldung die kommt ist folgende:

     

    Get-ADGroup : Verzeichnisobjekt nicht gefunden
    In Zeile:23 Zeichen:1
    + Get-ADGroup -Filter "Name -like 'V*'" -SearchBase $SearchBase |
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : ObjectNotFound: (:) [Get-ADGroup], ADIdentityNotFoundException
        + FullyQualifiedErrorId : ActiveDirectoryCmdlet:Microsoft.ActiveDirectory.Management.ADIdentityNotFoundException,Microsoft.ActiveDirectory.Management.Commands.GetADGroup

  3. vor einer Stunde schrieb NilsK:

    Moin,

     

    und wenn du für die IT so eine Aufgabe lösen sollst, lässt sich da nix machen? Meiner Erfahrung nach kann man mit Leuten reden.

     

    Am Ende hängt es aber auch nicht an adfind.exe, das macht es nur viel einfacher, als wenn man alles in PS selbst bauen muss. Du kannst den Aufbau in mehreren Schritten ja auch mit der PowerShell machen. Ich finde es halt, wenn es nur einmalig sein soll, in aller Regel viel einfacher, für sowas keine verschachtelten Programmschleifen bauen zu müssen, bei denen man schnell Fehler einbaut und die viel Aufwand beim Testen machen. Daher zerlege ich sowas lieber, auch wenn es nicht so elegant ist.

     

    Gruß, Nils

     

    Hey,

     

    nein leider nicht, Die sind da sehr streng und da es ja eine andere Möglichkeit gibt, die zur Verfügung steht, erwarten die halt, dass ich damit eine Lösung finde. Das Argument nachdem ich darauf verwiesen habe, dass es so so weniger kompliziert machbar wäre, meinten sie nur, dass das über Powershell auch nicht schwer sei.

     

    Ich komm jedoch nicht auf die Lösung..

     

    Die Infos die ich noch erfragt habe war, dass man sowohl die V*-Gruppen_RDP_users braucht als auch die V*-Gruppen_Administratoren, es ist egal wenn Benutzer in mehrere Gruppen sind, bzw. die zählen auch. dDie zählen also mit in die Zählung, wenn ein User in 5 Gruppen ist, zählt er 5 mal.

  4. vor 15 Minuten schrieb NilsK:

    Moin,

     

    also, ich würde die Aufgabe so lösen:

     

    Schritt 1: Ausgeben aller gewünschten Gruppen in eine CSV-Datei

    Dazu nähme ich adfind.exe von joeware.net. Da kann man mit LDAP-Filtern arbeiten. Hier braucht man im Wesentlichen den Namen und den distinguishedName pro Gruppe. Eine Gruppe pro Zeile.

     

    Schritt 2: Bearbeiten der Gruppenliste mit Excel

    Excel fungiert im Folgenden als Skriptgenerator. Hier würde ich mir mit den Stringfunktionen für jede Gruppe ein adfind-Kommando bauen, das mir die Mitglieder der betreffenden Gruppe ausgibt.

    Das geht so:

    [Excel: Admins unbekannter Liebling | faq-o-matic.net]
    https://www.faq-o-matic.net/2008/01/19/excel-admins-unbekannter-liebling/

     

    Hier unterscheidet sich dann die Logik: Falls es Verschachtelung gibt, User also indirekte Gruppenmitglieder sein können, dann früge ich das attribut "tokenGroups" ab und suchte also nach solchen Usern, denen die Gruppenmitgliedschaft zugeordnet wird. adfind.exe kann das.

    Ist Verschachtelung kein Thema, dann ist es einfacher: Zu jeder Gruppe nur den Inhalt des Attibuts "member" ausgeben.

    Ausgabe wieder in eine CSV-Datei.

     

    Schritt 3: Bearbeiten der Mitgliederliste

    Nun kann man die Mitgliederliste auch noch in Excel öffnen, um die Dubletten (Mehrfachmitgliedschaften) loszuwerden. Dafür hat Excel eine Funktion, die das direkt macht.

     

    Gruß, Nils

     

    Vielen lieben Dank für den Lösungsvorschlag, jedoch habe ich keine Rechte um irgendetwas zu installieren und das wird hier auch eher ungern gesehen, heißt also, dass ich zu 99% nichts downloaden darf.  Komme also nicht an die adfind.exe ran :/. Wenn ich auf den Downloadlink klicke, kommt 404: Eror File or Directory not found. Ist sogar dort schon gesperrt  Bin da leider an Powershell gebunden

  5. vor 55 Minuten schrieb NilsK:

    Moin,

     

    um wie viele Gruppen geht es denn? Und gibt es da auch Verschachtelungen, wie ich oben beschrieben habe? Ist sichergestellt, dass jeder User nur in maximal einer dieser Gruppen ist? (Sonst müsstest du bei deiner Frage ja auch noch die Mehrfachmitgliedschaften ausfiltern.)

     

    Bei solchen einmaligen Auswertungen mache ich es mir normalerweise einfach, aber was "einfach" ist, hängt natürlich von der Gesamtmenge ab.

     

    Gruß, Nils

     

    Guten Morgen,

     

    vielen Dank für die Rückmeldung. Also ein User kann in mehreren solcher Gruppen sein. Es sind schon über 100 Gruppen :).

     

    Also ich dachte, dass es genügt, dass von jeder Gruppe die User angezeigt werden, wenn User in mehreren Gruppen sind, müsste man sie ja trotzdem sehen, dann müsste man das halt auch nochmals zählen oder habe ich einen Denkfehler?

     

    Quasi so:

     

    in Grupe V12345678 ist User XY und wird somit angezeigt

     

    in Gruppe V45678321 ist User XY ebenfalls und wird nochmals angezeigt, dann müsste ich das ja nur berücksichtigen, dass der User auch in Gruppe X mit dabei ist?

  6. Am 23.9.2021 um 17:13 schrieb NilsK:

    Moin,

     

    ja, soweit passen die Erkenntnisse schon. Abhängig von der Umgebung kann es allerdings sein, dass der logische Ansatz trotzdem nicht passt:

    • mit dem Verfahren über "memberOf" findet man nur direkte Mitglieder der Gruppen, keine indirekten (wenn also ein User nur in einer "GruppeX" ist und diese Gruppe ist per Verschachtelung Mitglied einer gesuchten Gruppe "GroupY", dann taucht die gesuchte Gruppe "GroupY" unter "memberOf" nicht auf)
    • in großen AD-Umgebungen kann dieses Vorgehen viel Last erzeugen, weil vom DC zu Client alle Daten übertragen werden müssen und erst der Client das Filtern übernimmt

    Ist das eine Ausbildungs-Aufgabe? Oder geht es nur darum, das Ergebnis zu erhalten?

     

    Gruß, Nils

     

    Hab nochmals nachgefragt, das Ergebnis hat Prio, ist also keine Ausbildungs-Aufgabe :)

  7. Am 23.9.2021 um 17:13 schrieb NilsK:

    Moin,

     

    ja, soweit passen die Erkenntnisse schon. Abhängig von der Umgebung kann es allerdings sein, dass der logische Ansatz trotzdem nicht passt:

    • mit dem Verfahren über "memberOf" findet man nur direkte Mitglieder der Gruppen, keine indirekten (wenn also ein User nur in einer "GruppeX" ist und diese Gruppe ist per Verschachtelung Mitglied einer gesuchten Gruppe "GroupY", dann taucht die gesuchte Gruppe "GroupY" unter "memberOf" nicht auf)
    • in großen AD-Umgebungen kann dieses Vorgehen viel Last erzeugen, weil vom DC zu Client alle Daten übertragen werden müssen und erst der Client das Filtern übernimmt

    Ist das eine Ausbildungs-Aufgabe? Oder geht es nur darum, das Ergebnis zu erhalten?

     

    Gruß, Nils

     

    Moin,

     

    entschuldigen Sie die späte Antwort, ich hatte Berufsschule :).

    Ich befinde mich tatsächlich in der Ausbildung, jedoch ist das Ergebnis das Entscheidende. Man möchte anhand der Anzahl die ich da rausbekomme entscheiden, ob man Lizenzen pro Maschine oder Lizenzen pro User kauft. Daher ist das eine Mischung aus lernen und Ergebnis, vermute ich mal. :) Ich denke aber, dass das Ergebnis im Vordergrund steht. 

     

    Ich habe auch nochmals einen Arbeitskollegen gefragt, er meinte ich muss eher in diese Richtung:

     

    Get-ADGroup -Filter 'name -like "V*RDP*"'

     

    Wobei der Filter noch immer nicht korrekt ist, zumindest sehe ich so erst mal alle Gruppen die mit V beginnen , da müsste ich noch den regulären Ausdruck hinklatschen, damit er auch nur nach V12345678, also mit 8 random zahlen sucht. Danach muss ich wohl nur noch aus diesen Gruppen die User rausziehen, quasi alle groupmember in Gruppen mit dem genannten Filter. Igrendwie fühlt sicht da aber noch was falsch an, weiß nur nicht was :D.

     

    Die aktuelle Fragestellung ist:

     

    Welche User sind in Gruppe V* mit 8 random zahlen, also die Gruppennamen sehen immer so aus:

     

    V12345678_RDP-Users

    V12345678_Administrators

     

    Zahlen 1-8 sind immer unterschiedlich

     

    LG

  8. vor 3 Stunden schrieb cj_berlin:

    Naja, ganz so simpel ist es nicht.

     

    Get-ADUser musst Du erst mal sagen, dass memberOf benötigt wird.

    Dann stehen im memberOf nicht Namen, sondern Distinguished Names von Gruppen

    Und das mit 8 Zeichen: Regulärer Ausdruck.

     

    Jetzt hast Du wieder was zum Googlen.

    Super, vielen Dank erst mal, also zu Punkt ein, da habe ich -Properties memberOf gefunden, das passt, jetzt weiß Get-AdUser dass das dabei sein muss und es wird auhc angezeigt. bezüglich des regulären Ausdrucks bin ich auf -match gestoßen, vermute mal, dass es eine mischung aus einem Quantifizierer und noch etwas sein muss, dass es mir erlaubt, nur nach usern zu suchen die V und 8 drauffolgende Random zahlen beinhaltet, da steh ich aber auf dem Schlauch, mir fehlt die logische Umsetzung.

     

    Bin ich aufm Holzweg? :D

    • Like 1
  9. vor 23 Minuten schrieb cj_berlin:

    Moin,

     

    naja, mit Get-ADUser bist Du ja schon fast am Ziel, ein user hat ja ein berechnetes Attribut memberOf ;-) 

    Hallo :)

     

    danke erst mal für Ihre Antwort.

     

    Also damit hab ichs mal probieren wollen:

    Get-ADUser | WHERE {$_.MemberOf -eq "V*"}

     

    Ich komm nicht drauf, wie man Powershell sagt, dass nach dem V noch 8 Zahlen kommen :D

     

    Wenn ich Get-ADUser | WHERE {$_.MemberOf -eq "V*"} eingebe, dann fragt mich die Konsole nach einem Filter, wüsste aber nicht was da hinkommt, hab den doch im Code?

  10. Hallo zusammen,

     

    Schon mal vorab, ich hab absolut keine Erfahrung mit PowerShell.

     

    Es geht darum, dass ich herausfinden muss, welche Benutzer in einer oder mehreren Gruppen sind, die immer mit V beginnen und dann 8 Nummer folgen z. B. V12345678. Also ich sehe die Gruppe V12345678 und gehe dann da auf Mitglieder, die Mitglieder die ich darin auffinde, soll ich über Powershell ausgeben. Da sind da sind dann 0 bis x Mitglieder drin, diese sollten Pro V* - Gruppe angezeigt werden. Da es aber mehrere Gruppen im Active Directory gibt, muss ich das da ja schon mal Filtern aufg Gruppen, die mit V beginnen und 8 Zahlen folgen.

     

    Der nächste Schritt wäre, diese dann zählen zu lassen.

     

    Was noch wichtig wäre ist, dass man rausfindet, ob ein Mitglied einer solchen V* - Gruppe dann auch noch in anderen V* - Gruppen ist oder nicht.

     

    Hintergrund ist der, dass ich schauen muss ob sich eine Lizenz pro Maschine mehr lohnt oder Lizenzen für User. Es geht um Virtuelle Umgebung Lizenzen.

     

    Ich hab jetzt Stundenlang gegooglet, finde immer wieder sowas wie Get-ADUser oder Get-ADGroupMember aber ich hab keinerlei Erfahrungen im programmieren, sodass mir diese Filterlogik und die Syntax nicht einfällt.

     

    Könnte mir da jemand bitte eine kleine Starthilfe geben?

×
×
  • Neu erstellen...