Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Zugriff auf ADS

Frage Entwicklung Datenbanken

Mitglied: AndreasGrothe

AndreasGrothe (Level 1) - Jetzt verbinden

23.04.2008, aktualisiert 15.05.2008, 13005 Aufrufe, 6 Kommentare

Hallo zusammen,

wer kann helfen und eine genaue Anleitung schicken:

für eine Anwendung (Access oder HTML Seite), würde ich gerne auf das ADS zugreifen.

Name, Vorname, Telefonnummer usw.

Wie kann man das realisieren?

Danke
Mitglied: RDiller
23.04.2008 um 17:16 Uhr
Hallo Andreas,

mit diesem Code kannst Du mit ACCESS auf das AD zugreifen.


Public Function Import_AD()
Dim sqls
Dim rstemp As Recordset

sqls = "Select * from AD" 'Das ist die Tabelle in die die Werte kommen. Alle Felder sind Text Felder mit 255 Characters
Set rstemp = CurrentDb.OpenRecordset(sqls)

'Open AD Connection
Set ado = CreateObject("ADODB.Connection")
ado.Provider = "ADSDSOObject"
ado.Open

Set rs = ado.Execute("<LDAP://DC=XXX,DC=XXX,DC=XXX,DC=XXX,DC=XXX>;(&(objectClass=user)(samaccountname=*));ADsPath;SubTree") ' Die XXX mit Deinen Werten füllen

rs.MoveFirst
'Loop till all objects are imported

Do Until rs.EOF
useradpath = rs.Fields.Item("ADsPath").Value
'Get the actual User Object
Set objUser = GetObject(useradpath)
'Add the fields to AD Table
On Error Resume Next
rstemp.AddNew
rstemp.Fields("ADPath") = useradpath
rstemp.Fields("FullName") = objUser.FullName
rstemp.Fields("Extensionattribute1") = objUser.Extensionattribute1
rstemp.Fields("distinguishedname") = objUser.distinguishedname
rstemp.Fields("sAMAccountName") = objUser.sAMAccountName
rstemp.Fields("Login") = objUser.Login
rstemp.Fields("givenName") = objUser.givenName
rstemp.Fields("sn") = objUser.sn
rstemp.Fields("c") = objUser.c
rstemp.Fields("co") = objUser.co
rstemp.Fields("Division") = objUser.Division
rstemp.Fields("physicalDeliveryOfficeName") = objUser.physicalDeliveryOfficeName
rstemp.Fields("displayname") = objUser.displayname
rstemp.Fields("company") = objUser.company
rstemp.Fields("manager") = objUser.manager
rstemp.Fields("userPrincipalName") = objUser.userPrincipalName
rstemp.Fields("assistant") = objUser.assistant
rstemp.Fields("st") = objUser.st
rstemp.Fields("title") = objUser.title
rstemp.Fields("employeeType") = objUser.employeeType
rstemp.Fields("telephoneNumber") = objUser.telephoneNumber
rstemp.Fields("department") = objUser.department
rstemp.Fields("logoncount") = objUser.logoncount
rstemp.Fields("objectcategory") = objUser.objectcategory
rstemp.Fields("home") = objUser.homephone
rstemp.Fields("mobile") = objUser.mobile
rstemp.Fields("homedirectory") = objUser.homedirectory
rstemp.Fields("homedrive") = objUser.homedrive
rstemp.Fields("pcode") = objUser.postofficebox
rstemp.Fields("street") = objUser.streetaddress
rstemp.Fields("town") = objUser.l
rstemp.Fields("faxno") = objUser.facsimileTelephonenumber
rstemp.Fields("initials") = objUser.initials
rstemp.Update
'clean objUser
Set objUser = Nothing
rs.MoveNext
Loop
On Error GoTo 0
rs.Close
ado.Close

End Function



Hier noch eine Liste von AD-Feldern :

objUser.operatorCount
objUser.otherFacsimileTelephoneNumber
objUser.otherHomePhone
objUser.otherIpPhone
objUser.otherLoginWorkstations
objUser.otherMailbox
objUser.otherMobile
objUser.otherPager
objUser.otherTelephone
objUser.otherWellKnownObjects
objUser.ou
objUser.ownerBL
objUser.pager
objUser.partialAttributeDeletionList
objUser.partialAttributeSet
objUser.personalPager
objUser.personalTitle
objUser.photo
objUser.physicalDeliveryOfficeName
objUser.pOPCharacterSet
objUser.pOPContentFormat
objUser.possibleInferiors
objUser.PostalAddress
objUser.postalCode
objUser.postofficebox
objUser.preferredDeliveryMethod
objUser.preferredLanguage
objUser.preferredOU
objUser.primaryGroupID
objUser.primaryInternationalISDNNumber
objUser.primaryTelexNumber
objUser.profilePath
objUser.protocolSettings
objUser.proxiedObjectName
objUser.proxyAddresses
objUser.publicDelegates
objUser.publicDelegatesBL
objUser.pwdLastSet
objUser.queryPolicyBL
objUser.registeredAddress
objUser.replicatedObjectVersion
objUser.replicationSensitivity
objUser.replicationSignature
objUser.replPropertyMetaData
objUser.replUpToDateVector
objUser.repsFrom
objUser.repsTo
objUser.revision
objUser.rid
objUser.roomNumber
objUser.sAMAccountType
objUser.scriptPath
objUser.sDRightsEffective
objUser.secretary
objUser.securityIdentifier
objUser.securityProtocol
objUser.seeAlso
objUser.serialNumber
objUser.serverReferenceBL
objUser.servicePrincipalName
objUser.showInAddressBook
objUser.showInAdvancedViewOnly
objUser.sIDHistory
objUser.siteObjectBL
objUser.sn
objUser.st
objUser.street
objUser.streetaddress
objUser.structuralObjectClass
objUser.submissionContLength
objUser.subRefs
objUser.subSchemaSubEntry
objUser.supplementalCredentials
objUser.supportedAlgorithms
objUser.systemFlags
objUser.targetAddress
objUser.telephoneAssistant
objUser.telephoneNumber
objUser.teletexTerminalIdentifier
objUser.telexNumber
objUser.terminalServer
objUser.textEncodedORAddress
objUser.thumbnailLogo
objUser.thumbnailPhoto
objUser.title
objUser.tokenGroups
objUser.tokenGroupsGlobalAndUniversal
objUser.tokenGroupsNoGCAcceptable
objUser.uid
objUser.unauthOrig
objUser.unauthOrigBL
objUser.unicodePwd
objUser.unmergedAtts
objUser.url
objUser.userAccountControl
objUser.userCert
objUser.userCertificate
objUser.userParameters
objUser.userPassword
objUser.userPKCS12
objUser.userPrincipalName
objUser.userSharedFolder
objUser.userSharedFolderOther
objUser.userSMIMECertificate
objUser.userWorkstations
objUser.uSNDSALastObjRemoved
objUser.USNIntersite
objUser.uSNLastObjRem
objUser.uSNSource
objUser.versionNumber
objUser.wbemPath
objUser.wellKnownObjects
objUser.whenChanged
objUser.whenCreated
objUser.wWWHomePage
objUser.x121Address
objUser.x500uniqueIdentifier
objUser.operatorCount
objUser.otherFacsimileTelephoneNumber
objUser.otherHomePhone
objUser.otherIpPhone
objUser.otherLoginWorkstations
objUser.otherMailbox
objUser.otherMobile
objUser.otherPager
objUser.otherTelephone
objUser.otherWellKnownObjects
objUser.ou
objUser.ownerBL
objUser.pager
objUser.partialAttributeDeletionList
objUser.partialAttributeSet
objUser.personalPager
objUser.personalTitle
objUser.photo
objUser.physicalDeliveryOfficeName
objUser.pOPCharacterSet
objUser.pOPContentFormat
objUser.possibleInferiors
objUser.PostalAddress
objUser.postalCode
objUser.postofficebox
objUser.preferredDeliveryMethod
objUser.preferredLanguage
objUser.preferredOU
objUser.primaryGroupID
objUser.primaryInternationalISDNNumber
objUser.primaryTelexNumber
objUser.profilePath
objUser.protocolSettings
objUser.proxiedObjectName
objUser.proxyAddresses
objUser.publicDelegates
objUser.publicDelegatesBL
objUser.pwdLastSet
objUser.queryPolicyBL
objUser.registeredAddress
objUser.replicatedObjectVersion
objUser.replicationSensitivity
objUser.replicationSignature
objUser.replPropertyMetaData
objUser.replUpToDateVector
objUser.repsFrom
objUser.repsTo
objUser.revision
objUser.rid
objUser.roomNumber
objUser.sAMAccountType
objUser.scriptPath
objUser.sDRightsEffective
objUser.secretary
objUser.securityIdentifier
objUser.securityProtocol
objUser.seeAlso
objUser.serialNumber
objUser.serverReferenceBL
objUser.servicePrincipalName
objUser.showInAddressBook
objUser.showInAdvancedViewOnly
objUser.sIDHistory
objUser.siteObjectBL
objUser.sn
objUser.st
objUser.street
objUser.streetaddress
objUser.structuralObjectClass
objUser.submissionContLength
objUser.subRefs
objUser.subSchemaSubEntry
objUser.supplementalCredentials
objUser.supportedAlgorithms
objUser.systemFlags
objUser.targetAddress
objUser.telephoneAssistant
objUser.telephoneNumber
objUser.teletexTerminalIdentifier
objUser.telexNumber
objUser.terminalServer
objUser.textEncodedORAddress
objUser.thumbnailLogo
objUser.thumbnailPhoto
objUser.title
objUser.tokenGroups
objUser.tokenGroupsGlobalAndUniversal
objUser.tokenGroupsNoGCAcceptable
objUser.uid
objUser.unauthOrig
objUser.unauthOrigBL
objUser.unicodePwd
objUser.unmergedAtts
objUser.url
objUser.userAccountControl
objUser.userCert
objUser.userCertificate
objUser.userParameters
objUser.userPassword
objUser.userPKCS12
objUser.userPrincipalName
objUser.userSharedFolder
objUser.userSharedFolderOther
objUser.userSMIMECertificate
objUser.userWorkstations
objUser.uSNChanged
objUser.uSNCreated
objUser.uSNDSALastObjRemoved
objUser.USNIntersite
objUser.uSNLastObjRem
objUser.uSNSource
objUser.versionNumber
objUser.wbemPath
objUser.wellKnownObjects
objUser.whenChanged
objUser.whenCreated
objUser.wWWHomePage
objUser.x121Address
objUser.x500uniqueIdentifier

Einige dieser Felder sind multidimensional (das kannst Du über ADSI-EDIT herausfinden, oder wenn die Funktion auf ainen Fehler läuft ) ) und müssen entsprechend in ein Variantfeld zwischengespeichert werden

Mit der folgenden Funktion kannst Du alle Objektnamen ermitteln:

Public Function Get_ObjectNames()
'Show all objectnames
Set ado = CreateObject("ADODB.Connection")
ado.Provider = "ADSDSOObject"
ado.Open
Set rs = ado.Execute("<LDAP://DC=XXX,DC=XXX,DC=XXX,DC=XXX,DC=XXX>;(&(objectClass=user)(samaccountname=*));ADsPath;SubTree") ' Die XXX mit Deinen Werten füllen

rs.MoveFirst
Do Until rs.EOF
useradpath = rs.Fields.Item("ADsPath").Value
Set objUser = GetObject(useradpath)
Set objSchema = GetObject(objUser.Schema)
For Each Property In objSchema.MandatoryProperties
Debug.Print Property
Next
For Each Property In objSchema.OptionalProperties
Debug.Print Property
Next
Set objSchema = Nothing
Set objUser = Nothing
Exit Do
rs.MoveNext
Loop
rs.Close
ado.Close
End Function


Ich hoffe, damit kommst Du weiter


Gruß

Ralf
Bitte warten ..
Mitglied: AndreasGrothe
24.04.2008 um 13:19 Uhr
Wie muss ich das in Access machen?
makro oder so? Was genau muss hier stehen: <LDAP://DC=XXX,DC=XXX,DC=XXX,DC=XXX,DC=XXX>
Bitte warten ..
Mitglied: RDiller
24.04.2008 um 17:54 Uhr
Hallo Andreas,

das sind VBA-Module

Was in <LDAP://DC=XXX,DC=XXX,DC=XXX,DC=XXX,DC=XXX> zu stehen hat hängt von der Konfiguration Deines AD's ab. Schau Dir einfach mal ein Userobjekt an, da findest Du den LDAP-Pfad.

Ansosnsten kannst Du die ersten 4 DC Einträge mit dieser Funktion auslesen:

Public Sub Get_Object_Names()
On Error Resume Next

Const ADS_SCOPE_SUBTREE = 2

Set objRootDSE = GetObject("LDAP://RootDSE")
strConfigurationNC = objRootDSE.Get("configurationNamingContext")

Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection

objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE

objCommand.CommandText = _
"SELECT ADsPath FROM 'LDAP://" & strConfigurationNC & "' WHERE objectClass='nTDSDSA'"
Set objRecordSet = objCommand.Execute

objRecordSet.MoveFirst

Set objParent = GetObject(GetObject(objRecordSet.Fields("ADsPath")).Parent)

Debug.Print objParent.distinguishedname

End Sub


Da komm dann so etwas heraus:

CN=CN1 ,CN=Servers,CN=CN2,CN=Sites,CN=Configuration,DC=de,DC=int,DC=meinefirme,DC=com

Die Werte hinter DC trägst Du dann in den Aufruf ein, also:

<LDAP://DC=de,DC=int,DC=meinefirme,DC=com>

Den ersten DC= Eintrag lässt Du erst einmal weg, bis Du weist was dort stehen muß.

Gruß

Ralf
Bitte warten ..
Mitglied: AndreasGrothe
25.04.2008 um 08:51 Uhr
Hallo ralf,

da ich noch nie etwas damit gemacht habe.
Ich habe jetzt zum auslesen eine Test.vbs Datei erstellt.
Dann habe ich unter c: (mit cmd) die test.vbs aufgerufen. Wo schreibt er die Ausgabe hin?

danke
Bitte warten ..
Mitglied: AndreasGrothe
25.04.2008 um 09:14 Uhr
Bekomme folgende Auswertung

LDAP-Name (DN) CN=Grothe,OU=meineFirma,DC=gurex,DC=local
Bitte warten ..
Mitglied: RDiller
15.05.2008 um 09:13 Uhr
Wenn das was Du geschrieben hast stiommt, sollte der Query so aussehen:

Set rs = ado.Execute("<LDAP://OU=meineFirma,DC=gurex,DC=local>;(&(objectClass=user)(samaccountname=*));ADsPath;SubTree")


Gruß

Ralf
Bitte warten ..
Ähnliche Inhalte
Windows Server
Server 2012 R2 - Zugriff Verweigert bei jeglicher Tätigkeit (13)

Frage von DarkLevi zum Thema Windows Server ...

Exchange Server
EX 2016 kein Zugriff auf ECP und per Powershell (1)

Frage von akae11 zum Thema Exchange Server ...

Exchange Server
Exchange Server 2010 zugriff von Extern mit Outlook 2016? (5)

Frage von pipen1976 zum Thema Exchange Server ...

Datenbanken
gelöst MSSQL-Benutzer . Zugriff nur auf 2 Tabellen und 1 View (3)

Frage von Snuffchen zum Thema Datenbanken ...

Neue Wissensbeiträge
Windows 10

Windows 8.x oder 10 Lizenz-Key aus dem ROM auslesen mit Linux

Tipp von Lochkartenstanzer zum Thema Windows 10 ...

Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(38)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Heiß diskutierte Inhalte
Festplatten, SSD, Raid
POS Hardware und alternativen zu Raid 1? (21)

Frage von Brotkasten zum Thema Festplatten, SSD, Raid ...

Viren und Trojaner
Verschlüsselungstrojaner simulieren (18)

Frage von AlbertMinrich zum Thema Viren und Trojaner ...

Ubuntu
gelöst Nextcloud 12 Antivirus App for Files (10)

Frage von horstvogel zum Thema Ubuntu ...

Exchange Server
Exchange Postfach leeren - nicht löschen (9)

Frage von AndreasOC zum Thema Exchange Server ...