Jump to content

VBS: von NT4 Anmeldename zu Ldap Pfad des Users?


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo Leute,

 

ich such, und google mich jetz schon über 1 Tag durch sämtliche seiten aber bin momentan etwas hilflos.

 

Ich bin was VBS angeht nicht so bewandert aber Ich scheitere Momentan an einem Problem:

 

Ich habe die NT4 Anmeldename (domäne\benutzer) und würde daraus gern den ldap pfad zum User Objekt ableiten

 

 

Das ganze hat Folgenden Hintergrund:

Wir haben eine Sql Tabelle Wo Username im NT Format drinn ist und zu jedem Usernamen noch Daten.

Diese Daten sollen dann ins Active Directory importiert werden.

 

Ich hab mir gedacht ich mach das am Besten mittels VBS (jemand andere ideen?)

Das Abfragen des Sql Server funktioniert und ich denk das krieg ich soweit hin.

 

Das Schreiben der User Properties aber leider noch nicht ganz:

wenn ich denn NT4 ADSI Provider verwende getobject("winnt://domäne/user")

stehen mir die Prameter nicht zur verfügung die ich beschreiben möchte.

 

Wenn ich den User über LDAP refernziere funktioniert das setzten der parameter.

 

Allerdings krieg ich aus dem SQL nicht den ldap pfad raus.

 

Hat jemand ne idee?

 

mit lieben verzweifelten grüßen

Stefan

Link zu diesem Kommentar

Option Explicit

'Variablen definieren
Dim objRootDSE, strDNSDomain, adoCommand, adoConnection, strQuery
Dim adoRecordset, strName, strDN
Dim blnFlag, strBase, strFilter, strAttributes
Dim wshNetwork, wshshell, adsysinfo, currentuser

'Objekte erstellen
Set wshNetwork = CreateObject("WScript.Network")
Set Wshshell = CreateObject("WScript.Shell")
Set ADSysInfo = CreateObject("ADSystemInfo")

CurrentUser = wshNetwork.Username

'Mit LDAP verbinden
Set objRootDSE = GetObject("LDAP://RootDSE")
strDNSDomain = objRootDSE.Get("defaultNamingContext")

'ADO definieren
Set adoCommand = CreateObject("ADODB.Command")
Set adoConnection = CreateObject("ADODB.Connection")
adoConnection.Provider = "ADsDSOObject"
adoConnection.Open "Active Directory Provider"
adoCommand.ActiveConnection = adoConnection

strBase = "<LDAP://" & strDNSDomain & ">"
strFilter = "(&(objectCategory=person)(objectClass=user) (samaccountname=" & Currentuser & "))"
strAttributes = "distinguishedName,displayName"
strQuery = strBase & ";" & strFilter & ";" & strAttributes & ";subtree"
adoCommand.CommandText = strQuery
adoCommand.Properties("Page Size") = 100
adoCommand.Properties("Timeout") = 30
adoCommand.Properties("Cache Results") = False
adoCommand.Properties("Sort On") = "displayName"
Set adoRecordset = adoCommand.Execute

strName = adoRecordset.Fields("displayName").Value

adoRecordset.Close

 

also das ist ein skript dass ich benutze um bestimmte attribute eines users aus dem AD zu fischen...

du müsstest halt die currentuser variable so definieren, dass sie deinem SAM-name entspricht...und das abgefragte attribut (displayname) so umschreiben, dass der Distinguished Name abgefragt und ausgegeben wird.

 

Hoffe das bringt dich weiter...:D

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...