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, 12825 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Router & Routing
gelöst MikroTik hAP ac Winbox Zugriff deaktivieren (1)

Frage von horstvogel zum Thema Router & Routing ...

Windows Server
Windows Server 2012 R2 Benutzerkonto für Zugriff auf AD Benutzer (1)

Frage von JulianOhm zum Thema Windows Server ...

Netzwerke
gelöst Zugriff auf Server von verschiedenen VLANs aus (7)

Frage von Kroeger02 zum Thema Netzwerke ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

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