cableape
Goto Top

VBA - AD Infos in Word

Hallo an alle VBA / LDAP experten.

Ich möchte eine Word Vorlage erstellen die Automatisch mit User Infos gefüllt wir.

Wie ich die Daten vom User rein bekomme habe ich schon rausgefunden:
Sub AutoNew()
'  
' AD_Reader Makro  
'  
'  
On Error Resume Next
Dim qQuery, objSysInfo, objuser, objOU
Dim Firma, Tel2, Name, EMail, Phone, Fax, web, position, Abteilung

' Active Directory Informationen für den angemeldeten User lesen  
Set objSysInfo = CreateObject("ADSystemInfo")  
objSysInfo.RefreshSchemaCache
qQuery = "LDAP://" & objSysInfo.UserName  

Set objuser = GetObject(qQuery)

'Variablen mit AD-Attributen füllen  
Firma = objuser.department & " - " & objuser.company  
Abteilung = objuser.physicalDeliveryOfficeName
Name = objuser.firstname & " " & objuser.lastname  
Phone = objuser.TelephoneNumber
Fax = objuser.facsimileTelephoneNumber
EMail = objuser.mail
web = objuser.WWWHomePage
position = objuser.Description
Strasse = objuser.streetAddress
Ort = objuser.l
PLZ = objuser.postalCode
Tel2 = objuser.HomePhone

smsEinfügen "Firma", Firma  
smsEinfügen "Name", Name  
smsEinfügen "Telefon", Telefon  
smsEinfügen "Fax", Fax  
smsEinfügen "Strasse", Strasse  
smsEinfügen "Ort", Ort  
smsEinfügen "PLZ", PLZ  
smsEinfügen "EMail", EMail  
smsEinfügen "Web", web  
smsEinfügen "Tel2", Tel2  
smsEinfügen "title", position  

End Sub

Public Sub smsEinfügen(Textmarke, Variable)
' Prozedur zum Einfügen des Wertes ("Variable") an der entsprechenden Textmarke  
If ActiveDocument.Bookmarks.Exists(Textmarke) = True Then
Selection.GoTo What:=wdGoToBookmark, Name:=Textmarke
Selection.TypeText Variable
End If
End Sub

Wie aber bekomme ich mit diesem Script es hin Infos aus der OU des jeweiligen Users auszulesen (wobei der User auchnoch in unterOUs steckt)?
Ich hab im Netz auch nix brauchbares gefunden...

Danke für eure Hilfe.

CableApe

Content-ID: 167188

Url: https://administrator.de/contentid/167188

Ausgedruckt am: 05.11.2024 um 16:11 Uhr

RDiller
RDiller 30.05.2011 um 16:41:07 Uhr
Goto Top
Hi,

hier eine Liste die ich vor ein paar Jahren benutzt habe. Ob die Namen noch stimmen weis ich leider nicht

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

hier eine Acces VBA Prozedur die die Namen ausgibt:
Public Function Get_ObjectNames()
'Show all objectnames
Set ado = CreateObject("ADODB.Connection")
ado.Provider = "ADSDSOObject"
ado.Open
'Suchstring hängt von der AD-Konfiguration und dem Starpunkt Deiner Suche ab
Set rs = ado.Execute("<LDAP://OU=User,OU=...,DC=...,DC=...,DC=...,DC=....,DC=com>;(&(objectClass=user)(samaccountname=*));ADsPath;SubTree")

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
cableape
cableape 31.05.2011 um 08:36:50 Uhr
Goto Top
Die Werte bekommt man gut bei Yusuf: http://blog.dikmenoglu.de/Die+Active+DirectoryAttribute+Hinter+Den+Feld ...

Aber ich weis nicht wie ich aus dem qquery die Werte der OrganisationUnit rausbekomme!

Vllt. paar Details zum Hintergrund:

Meine User sollen eine Word-Vorlage bekommen die beim aufrufen sofort die Header und die Infos füllt. Im Header steht der Name der Firma und deren Niederlassung. In den Infos finden sich dann Name und Durchwahl weider.
Da der Header für 40 User / Standort gleich ist möchte ich mit die Infos aus der OU ziehen und nich bei jedem im Userprofil eintragen!

Gruß
cableape
cableape 06.06.2011 um 08:37:28 Uhr
Goto Top
Hat keiner ne Info für mich wie ich die Organisation Units in Word einbinden kann???