vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
TOP-Angebot: 17 bzw. 24 Entwickler-Vollversionen zum unschlagbaren Preis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2019
 
zurück
Rubrik: System/Windows · Computer/Benutzer/Ländereinstellungen   |   VB-Versionen: VB602.12.05
Computer der gegenwärtigen Domäne auslesen

Alle Namen der Computer der gegenwärtigen Domäne (LDAP) auslesen

Autor:   Dennis HemkenBewertung:     [ Jetzt bewerten ]Views:  23.094 
gadgets.hemken.orgSystem:  WinXP, Win8, Win10 Beispielprojekt auf CD 

Mit dieser Funktion ist man in der Lage, alle Computer in der gegenwärtigen Domäne aus dem LDAP, mittels ADSI (ADSI = Active Directory Service Interface) auszulesen und in einem StringArray zurückzugeben.

Um diese Funktion auszuführen, müssen folgende Verweise eingefügt werden:

  • Microsoft ActiveX Data Objects 2.5 Libary
  • Active DS Type Libary

Quellcode:

Public Function AllComputers() As String()
  Dim conn As New Connection
  Dim rs As Recordset
 
  Dim Root As IADs
  Dim Domain As IADs
 
  Dim strBase As String
  Dim strFilter As String
  Dim strDomain As String
 
  Dim strAttr As String
  Dim strDepth As String
  Dim strQuery As String
  Dim strPC() As String
  Dim nElement As Integer
 
  On Error GoTo ErrHandler
 
  ReDim strPC(0) As String
 
  ' Pfad der gegenwärtigen Domäne (LDAP) einholen
  Set Root = GetObject("LDAP://rootDSE")
  strDomain = Root.Get("defaultNamingContext")
  Set Domain = GetObject("LDAP://" & strDomain)
 
  ' LDAP Base DN setzen
  strBase = "<" & Domain.ADsPath & ">"
 
  ' Filter auf die Kategorie Computer setzen
  strFilter = "(&(objectCategory=Computer))"
 
  ' Attribut setzen
  strAttr = "name"
 
  ' Suchtiefe setzen
  strDepth = "subTree"
 
  ' Abfrage zusammen setzen
  strQuery = strBase & ";" & strFilter & ";" & strAttr & ";" & strDepth
 
  ' Verbindung öffnen
  conn.Open "Data Source=Active Directory Provider;Provider=ADsDSOObject"
 
  ' Query ausführen
  Set rs = conn.Execute(strQuery)
 
  Do While Not rs.EOF
    If strPC(0) = "" Then
      nElement = 0
    Else
      nElement = nElement + 1
    End If
 
    ' das Array Redimensionieren
    ReDim Preserve strPC(nElement) As String
 
    ' Den Computernamen in das Array schreiben
    strPC(nElement) = rs("name")
    rs.MoveNext
  Loop
 
  ' Das StringArray zurückgeben
  AllComputers = strPC
 
  If rs.State <> 0 Then rs.Close
  If conn.State <> 0 Then conn.Close
 
' Error Handling
ErrHandler:
  On Error Resume Next
  AllComputers = strPC
  Set rs = Nothing
  Set conn = Nothing
  Set Root = Nothing
  Set Domain = Nothing
End Function

Beispiel für den Auruf der Funktion:

Private Sub Command1_Click()
  Dim strA() As String
  Dim lI As Long
 
  strA = AllComputers    
  If Not strA(0) = "" Then
    For lI = 0 To UBound(strA)
      Debug.Print strA(lI)
    Next
  End If
End Sub

Dieser Tipp wurde bereits 23.094 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Neue Diskussion eröffnen

nach obenzurück


Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
   

Druckansicht Druckansicht Copyright ©2000-2019 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel