Announcement

Collapse
No announcement yet.

Benutzer ermitteln

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Benutzer ermitteln

    Hallo,
    ich suche eine Möglichkeit, mit der ich alle am Computer vorhandenen Benutzer und ggf. deren Gruppen abfragen kann.

    Bei VB6 gab's da die Möglichkeit per ADSI
    http://www.vbarchiv.net/archiv/tipp_details.php?pid=1373

    Leider funktioniert da der Filter nicht bzw. weiß ich nicht, was ich ihm übergeben muss, damit er nur Benutzer zurückgibt.

    MfG
    Bigdesaster

  • #2
    Hallo,
    im .NET Framework in der Namespace <i>System.DirectoryServices</i> für den Zugriff auf LDAP (Lightweight Directory Access Protocol) zuständig. Damit die Klassen aus diesem Namespace genutzt werden können, muss dem Projekt zuerst ein Verweis auf die Assembly <i>System.DirectoryServices.dll</i> hinzugefügt werden. Die Klasse <b>DirectorySearcher</b> bildet den Einstiegspunkt, wobei hier festgelegt wird, welche Information aus welchem Active Directory abgerufen werden soll. Im Beispiel verbirgt sich hinter <i>OSSISOFT.local</i> ein Windows 2003 Active Directory Server. Da ein Benutzername eindeutig ist, wird die Methode <b>FindOne</b> genutzt, um den gesuchten Eintrag im Active Directory referenzieren zu können. In der Listebox werden alle Gruppen aufgezählt, zu der dieser Benutzer gehört:
    <code>
    <font color="#0000FF">Dim</font> oRoot <font color="#0000FF">As</font> <font color="#008080">DirectoryEntry</font>
    <font color="#0000FF">Dim</font> oSearcher <font color="#0000FF">As</font> <font color="#008080">DirectorySearcher</font>
    <font color="#0000FF">Dim</font> oResult <font color="#0000FF">As</font> <font color="#008080">SearchResult</font>
    <font color="#0000FF">Dim</font> obUser <font color="#0000FF">As</font> <font color="#008080">DirectoryEntry</font>
    <font color="#0000FF">Dim</font> obGroups <font color="#0000FF">As</font> <font color="#0000FF">Object</font>
    <font color="#0000FF">Dim</font> obGpEntry <font color="#0000FF">As</font> <font color="#008080">DirectoryEntry</font>
    <font color="#0000FF">Dim</font> sFilter <font color="#0000FF">As</font> <font color="#0000FF">String</font>
    sFilter = <font color="#0000FF">String</font>.<font color="#008080">Format</font>("(sAMAccountName={0})", _
    TextBoxUserName.Text)
    oRoot = <font color="#0000FF">New</font> <font color="#008080">DirectoryEntry</font>( _
    "LDAP://CN=users,DC=OSSISOFT,DC=local")
    oSearcher = <font color="#0000FF">New</font> <font color="#008080">DirectorySearcher</font>(oRoot, sFilter)
    oResult = oSearcher.FindOne
    <font color="#0000FF">If</font> <font color="#0000FF">Not</font> (oResult <font color="#0000FF">Is</font> <font color="#0000FF">Nothing</font>) <font color="#0000FF">Then</font>
    obUser = <font color="#0000FF">New</font> <font color="#008080">DirectoryEntry</font>(oResult.<font color="#008080">Path</font>)
    obGroups = obUser.Invoke("Groups")
    <font color="#0000FF">For</font> <font color="#0000FF">Each</font> ob <font color="#0000FF">As</font> <font color="#0000FF">Object</font> <font color="#0000FF">In</font> <font color="#0000FF">DirectCast</font>(obGroups, IEnumerable)
    obGpEntry = <font color="#0000FF">New</font> <font color="#008080">DirectoryEntry</font>(ob)
    ListBox1.Items.Add(obGpEntry.Name)
    <font color="#0000FF">Next</font>
    <font color="#0000FF">End</font> <font color="#0000FF">If</font>
    </code&gt

    Comment


    • #3
      Eine gute Suchquelle um alte Win32-Funktionen unter .NET zu finden gibt es im <a href="http://msdn.microsoft.com/vstudio/default.aspx?pull=/library/en-us/dndotnet/html/win32map.asp">MSDN</a&gt

      Comment

      Working...
      X