Top-Themen

Aktuelle Themen (A bis Z)

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

Mitglied: AndreasGrothe

AndreasGrothe (Level 1) - Jetzt verbinden

23.04.2008, aktualisiert 15.05.2008, 13294 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
Samba

Verknüpfung von ADS- und Linux Gruppen

gelöst Frage von 98500Samba19 Kommentare

Hey@ALL Folgende Frage. Ich habe in meinem ADS diverse Gruppen angelegt: Beispiel: - ADS_01_Leitung - ADS_02_Vertrieb - ADS_03_ Buchhaltung ...

Windows Server

Migration ADS von 2003 auf Server 2012

Frage von rel0aded0neWindows Server6 Kommentare

Hallo an alle :) Ich habe eine Frage zu einer Testumstellung an der ich gerade sitze. Ich habe folgende ...

Batch & Shell

PowerShell für Info über letzte Dateieänderung von welchen ADS User?

Frage von Micky770Batch & Shell4 Kommentare

Hi! Habe einen Verschlüsselungs Virus auf einem Server. Hab ich die Möglichkeit per Powershell die Information zu bekommen welcher ...

Sicherheit

Kaspersky KES10 Windows User ADS Kennwort änderung

Frage von Flubber42Sicherheit5 Kommentare

Hallo Administratoren, seit unserm Update auf die Neuste Kaspersky Version Kaspersky Endpoint Securety 10 (KES10) dürfen wir ein sehr ...

Neue Wissensbeiträge
Ausbildung

Linux-Ausstieg in Niedersachsen - Windows statt Bugfix

Information von StefanKittel vor 2 TagenAusbildung35 Kommentare

Sind ja nur Steuergelder

Speicherkarten

Neuer Speicherkartentyp - zunächst nur für Huawei-Smartphones (künftig auch für Notebooks u. Tablets?)

Tipp von VGem-e vor 4 TagenSpeicherkarten5 Kommentare

Servus, als ob das "Chaos" i.S. Speicherkarten noch nicht groß genug wäre?! Evtl. kommt dieser neue Kartentyp bald auch ...

Sicherheit

Diverse D-Link-Router durch drei Schwachstellen kompromittierbar

Information von kgborn vor 4 TagenSicherheit1 Kommentar

Hat jemand D-Link-Router in Verwendung? Einige Modelle sind sicherheitstechnisch offen wie ein Scheunentor. Äußerst unschöne Sache, aber nichts neues ...

Hardware

100.000 Mikrotik-Router ungefragt von Hacker abgesichert

Information von 7Gizmo7 vor 5 TagenHardware4 Kommentare

Hallo zusammen, da hier ja öfters mal von Mikrotik gesprochen wird. Trotz Updates klafft eine Sicherheitslücke in Hundertausenden Mikrotik-Routern. ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Passwortwechsel Zeitpunkt festlegen
Frage von Looser27Windows Userverwaltung27 Kommentare

Guten Morgen liebe Kolleginnen und Kollegen, da es eine Userin in meinem Urlaub geschafft hat, sich vom AD vollständig ...

Windows Server
Probleme im AD am Außenstandort
gelöst Frage von emeriksWindows Server19 Kommentare

Hi, wir haben ein Problem mit AD und GPO am Außenstandort und ich stehe momentan mächtig auf dem Schlauch. ...

Switche und Hubs
POE-Switche
gelöst Frage von MiStSwitche und Hubs13 Kommentare

Guten Morgen, ich überlege ob ich in unserem Netzwerk die aktuellen Switche (D-LINK DGS-1210-28) durch PoE-Switche ersetzen soll. Der ...

Windows Server
DNS - Bedingte Weiterleitung
gelöst Frage von m8ichaelWindows Server11 Kommentare

Guten Tag zusammen, ich stehe gerade bzgl. einer bedingten DNS-Weiterleitung etwas auf dem Schlauch: Ich möchte, dass für bestimmte ...