Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie
Toon posts:

Inzage aduser membership

Pagina: 1
Acties:

Vraag


  • dukejan
  • Registratie: juli 2009
  • Laatst online: 13:59
Beste Tweakers,

Omschrijving

Binnen onze organisatie werken wij met een Active Directory. Alle gebruikers binnen de AD zijn lid van ADgroepen, welke beginnen met de prefix "fg_". Deze groepen bevatten vervolgens de rechten die de leden nodig hebben om hun taken uit te voeren.

Nu komt de vraag uit de organisatie om real-time inzage te krijgen in de leden van deze groepen. (beide kanten op). Zo willen ze dus van bijvoorbeeld "pietje" zien van welke "fg_" groep hij lid is. Maar ze willen ook zien welke gebruikers er lid zijn van welke "fg_".

De organisatie kan met deze informatie beter bepalen wat de rechtenaanpassen van een "fg_" groep voor impact heeft, en kan beter inzien welke gebruikers al de juiste rechten hebben (of een aanpassing behoeven).

Oplossingsideeen

Ik heb al rond gekeken naar verschillende oplossingen.

Powershell

Ik kan met onderstaand script een lijst genereren met alle gebruikers inclusief bijbehorende "fg_" groepen. Helaas is dit niet gebruiksvriendelijk en vereist het nog wat knutselwerk achteraf.


PowerShell:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$outputfile = "C:\export.txt"
$objects = get-adgroup -filter {Name -like "fg*"}
foreach ($object in $objects) 
{
    $membergroups = get-adgroupmember $($object.Name)
    foreach ($membergroup in $membergroups){
        $obj = new-object psobject -Property @{
        Objectname = $($object.Name)
        Membergroup = $($membergroup.Name)
    }
        $output = $obj | format-table -HideTableHeaders  Membergroup, Objectname
        Add-Content $outputfile $obj
            }
}



Een ander idee is om een gui shell te maken rond Powershell die per gebruiker of groep de bevraging doet. Helaas houd mijn kennis hierbij op om er actief iets mee te kunnen doen.

VB.net
Mijn kennis met Visual Studio en vb.net is al een stuk meer aanwezig. Het is een overzichtelijk tool waarmee ik snel een formulier in elkaar kan schroeven met wat logica erachter. Helaas is mij hiervan niet bekend hoe ik de AD informatie kan ophalen. Een formulier maken met een textbox voor "gebruiker" en een knop voor "zoeken" is zo gepiept, maar de code erachter is lastig.
Zoeken op het internet geeft veelal grote lappen code mee. Deze zijn voor mij lastig te interpreteren naar wat ik nodig heb.

Wat vraag ik van jullie?


Ik vraag niet van jullie om mijn code te schrijven, dat zal ik zelf moeten doen. Wat ik wel hoop is dat jullie wellicht hier (of iets soortgelijks) ervaring mee hebben. Wellicht dat jullie mij kunnen vertellen welke richting ik het beste op kan denken om tot mijn oplossing te komen.

Alvast bedankt voor jullie meedenken.

NMe wijzigde deze reactie 10-01-2019 12:16 (0%)
Reden: Juiste syntax highlighting

Alle reacties


  • Johnsel
  • Registratie: februari 2004
  • Laatst online: 22-08 05:43
Als je een brug kunt slaan tussen het PowerShell script en een VB.Net interface zou je er zijn toch?

https://docs.microsoft.co...&view=powershellsdk-1.1.0

Code hieronder is blind geschreven en heeft waarschijnlijk zowel syntax als logica-fouten erin, maar laat wel zien wel hoe je het powershell script kunt omschrijven naar vb.net icm de PowerShell SDK


code:
1
2
3
4
5
6
7
8
9
10
      PowerShell ps = PowerShell.Create();
      ps.AddCommand("get-adgroup").AddParameter("filter","{Name -like *fg}")
    
      // Call the PowerShell.Invoke() method to run the 
      // commands of the pipeline.
        foreach (PSObject result in ps.Invoke())
      {
        Console.WriteLine(result.Members[Name].Value)
        // get-members per adgroup (alhoewel je volgens mij ook alles in 1 call kunt opvragen)
      } // End foreach.


  • MAX3400
  • Registratie: mei 2003
  • Laatst online: 27-07 14:48

MAX3400

XBL: OctagonQontrol

Er is trouwens geen enkele reden te geven uit de organisatie dat ze realtime weten welke medewerker lid is van welke (nested) groups. Dit klinkt gewoon als "we hebben de hele bende niet op orde maar willen niet dat een medewerker van die andere afdeling in onze directory kan snuffelen." Daarbij, maar dat is nog een stap verder; "wie" wil dat allemaal zien? Iedereen? Van de directeur tot de schoonmaker? Of zijn het bepaalde personen zoals afdelingsmanagers?

Ik zou de moeite niet eens doen om dit bekend te maken zoals je nu bezig bent. Iedereen kan LDAP querien binnen een organisatie; en hoe je het ook oplevert, vaak is het toch niet goed genoeg voor persoon A, B of C. Geef ze PowerShell met de correcte add-ins (Active Directory) en fijne wedstrijd.

Gezien de vraagstelling en (waarschijnlijk) het vervolg in permissions, zou je allicht eens kunnen gaan kijken naar "role based access control" waarmee je op bijna elk component, wat beheerd kan worden vanuit Active Directory, ook daadwerkelijk eenduidig alles inricht.

Xbox Live: OctagonQontrol


  • lolgast
  • Registratie: november 2006
  • Laatst online: 21:59
Ik zie de volgende vraag al: Op welke mappen hebben al deze groepen eigenlijk rechten? :P

Persoonlijk zou ik een script maken waarmee ze per keer een groep of gebruiker kunnen opgeven welke vervolgens automatisch een CSV bestand maakt voor ze. Kunnen ze op elk voor hen geschikt moment een query draaien en je wurmt jezelf niet in onmogelijke bochten omdat ze continu extra functies in je GUI willen. Kun je je mooi bezighouden met mijn eerste regel :+


Apple iPhone 11 Nintendo Switch Lite LG OLED C9 Google Pixel 4 FIFA 20 Samsung Galaxy S10 Sony PlayStation 5 Elektrische voertuigen

'14 '15 '16 '17 2018

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2019 Hosting door True