Toon posts:

Properties van AD objecten gebruiken in word template

Pagina: 1
Acties:
  • 357 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hej, zoals je in de topic kunt lezen ben ik op zoek naar een manier om de properties van active directory objecten (zoals username, echte naam/achternaam, telefoonnummer, enz.) in een word template te zetten. We hebben al een template die met een visual basic macro de informatie uit de user information van word haalt, maar het zou beter zijn dat die ze uit AD haalt.
Kan dit op een relatief eenvoudige manier want ik ben zelf nu zo een echte crack in scripting/programatie.

Alvast bedankt!

Verwijderd

Moet het perse in Word ?

Ik weet wel een methode dat alle info in een .csv bestand word gegooid. Dit kan met CSVDE http://www.microsoft.com/.../help/sag_ad_ldif_csv.htm

Deze zou je vast ook wel met een macrootje in kunnen laden in Excel. Zodat alles netjes in z'n eigen vakje komt.


Moet je natuurlijk wel Admin voor zijn om csvde te kunnen gebruiken.

Verwijderd

Topicstarter
Ik ben al iets verder gekomen, dus wat ik heb gevonden is dat je ADSI (Active Directory Service Interfaces) taal (of weet ik veel wat het nou net is) kan gebruiken in visual basic script/macro dat je aan je word document koppelt. Nu heb ik een paar gelijkende voorbeeldjes gevonden ( http://support.microsoft.com/?kbid=194115 enz.), maar ik zoek eigenlek iets dat gewoon informatie uit AD haalt van de current user die het document opent (dus ik open bv. een faxcover en hij vult men naam in die die uit AD haalt). Iemand hier al een soortgelijke ervaring mee?

Verwijderd

Zie onderstaand VBscript:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
'Requires: Microsoft Windows 2000 clients or higher!
On Error Resume Next

'Determine CN of currently logged on user
Set objSysInfo = CreateObject("ADSystemInfo")
strUserDN = objSysInfo.userName
Set objUser = GetObject("LDAP://" & strUserDN)

'Set User Info into variables
strGivenName = objUser.Get("givenName")
strSn = objUser.Get("sn")       
strInitials = objUser.Get("initials")   
strTelephoneNumber = objUser.Get("telephoneNumber")
strHomePhone = objUser.Get("homePhone")
strMobileNumber = objUser.Get("mobile")
strFaxNumber = objuser.Get("facsimileTelephoneNumber")

'Output to screen
WScript.echo "givenName: " & strGivenName
WScript.echo "sn: " & strSn
WScript.echo "initials: " & strInitials
WScript.echo "telephoneNumber: " & strTelephoneNumber
WScript.echo "homePhone: " & strHomePhone
WScript.echo "mobiel: " & strMobileNumber
WScript.echo "fax: " & strFaxNumber

Verwijderd

Topicstarter
Echt prachtig, heb al beetje aan't experimenteren geweest en werkt gewoon perfect! 1000 maal dank! Ik zal deze thread nog updaten met het uiteindelijke scriptje wat het is geworden.

Nog klein ander vraagje, die strGivenName, strSn, strInitials, strTelephoneNumber,... verwijzen naar de AD velden. Waar kan ik een overzichtje vinden welke variablen ik allemaal kan gebruiken?

[ Voor 37% gewijzigd door Verwijderd op 15-04-2004 11:57 ]


Verwijderd

Die AD velden staan onder andere beschreven in Appendix C - Base Schema Attribute Objects in examen boek 70-219 (Designing a Microsoft Windows 2000 Directory Services Infrastructure).

Met de Active Directory Schema MMC kun je de attributen ook bekijken, precies hetzelfde als de lijst in mijn boek! (Moet je even de ADMINPAK.MSI installeren)

PS: De AD veldnamen staan dus tussen "" in de functie aanroep objUser.Get("mobile").

  • chromeeh
  • Registratie: Oktober 2001
  • Laatst online: 27-08 14:53

chromeeh

the Gnome

Wel in de gaten houden dat Word wel lokaal staat!
Ik heb het geprobeerd via Terminal Services en dan wil die nog wel eens over z'n nek gaan ;)

"Some day, I hope to find the nuggets on a chicken."


  • OkselFris
  • Registratie: Februari 2001
  • Laatst online: 21:48

OkselFris

Rabarber, Rabarber, Rabarber

Verwijderd schreef op 15 april 2004 @ 13:04:
Met de Active Directory Schema MMC kun je de attributen ook bekijken, precies hetzelfde als de lijst in mijn boek! (Moet je even de ADMINPAK.MSI installeren)

PS: De AD veldnamen staan dus tussen "" in de functie aanroep objUser.Get("mobile").
Moet je hem nog wel even activeren. want hij wordt na het installeren van de adminpack niet geregistreerd.

Regsvr32 schmmgmt.dll

Daarna is de schema snap-in beschikbaar via MMC

To crash with a Volvo is extremely safe..... if you’re sitting in a Saab


Verwijderd

@OkselFris: Bij Windows Server 2003 hoeft dat niet meer :)

@Crashoverride: Zou je je probleembeschrijving kunnen toelichten? "over z'n nek gaan" is wel erg vaag. Bovendien met een "On Error Resume Next" als 1ste statement kan er toch niks mis gaan... In het ergste geval krijg je alleen lege velden?

  • OkselFris
  • Registratie: Februari 2001
  • Laatst online: 21:48

OkselFris

Rabarber, Rabarber, Rabarber

Verwijderd schreef op 16 april 2004 @ 08:41:
@OkselFris: Bij Windows Server 2003 hoeft dat niet meer :)
Volgens mij ga ik mijn Windows server 2003 MCSA trainer even om de oren slaan.

Hij staat inderdaad in het rijtje via Add snap-in.

To crash with a Volvo is extremely safe..... if you’re sitting in a Saab


Verwijderd

Topicstarter
Hello,

Nog een vraagje omtrent dit onderwerp:

Ik ben nu een manier aan het zoeken om alle computers die we in active directory hebben staan (die tevens allemaal in dezelfde OU staan) in excel te importeren. Eigenlek moeten er maar twee velden geimporteerd worden per row, namelijk computername en description, meer mag natuurlijk altijd (zoals managed by bv.)

Met het onderstaande stuk code dat ik hier heb gekregen ging hij velden opvragen van de logged on user, nu ben ik op zoek naar een manier om alle computer objecten te rapporteren (google hielp me niet, ben ook een beetje te leek om te weten wat ik net moet zoeken).

code:
1
2
3
4
        'Determine CN of currently logged on user
        Set objSysInfo = CreateObject("ADSystemInfo")
        strUserDN = objSysInfo.UserName
        Set objuser = GetObject("LDAP://" & strUserDN)


(P.S: in vorige post had ik beloofd om faxformulier hier te posten, dit kan ik helaas niet doen omdat er vertrouwelijke informatie instaat.)

Verwijderd

Topicstarter
Hmm, mooi dat ze die scripts bij microsoft hosten. Dank voor de link!
Nu gooide ik dat script in een vbs file, maar wanneer je dat runt laat hij natuurlijk alles verschijnen in een popup venster. Weet er iemand hoe ik dit mooi in een excel document kan gieten zodat ik hetvolgende krijg:
code:
1
2
3
4
5
6
          A                    B                    C                    D
1     CompNaam                Desc                 ...
2
3       PC1                 Kees Pinda         
4       PC2                 Koos Panda
...


Een voorbeeld met Naam en description is genoeg, daaruit kan ik zelf wel afleiden hoe ik meer veldjes erin kan zetten. thx!

Verwijderd

Neem je ook genoegen met een csv bestand?
code:
1
2
3
4
5
6
7
8
9
10
11
strComputerContainer = "cn=Computers,DC=DOMEIN,DC=nl"
set objContainer = Getobject("LDAP://" & strComputerContainer)
objContainer.Filter = Array("Computer")
Set FileSystem=Wscript.CreateObject("Scripting.FilesystemObject")
Set OutputFile=FileSystem.CreateTextFile("output.csv", true)
OutputFile.WriteLine "Compnaam" & "," & "Desc"
For Each objComputer In ObjContainer
    strCompName = Split(objComputer.Name,"=")(1)
     OutputFile.WriteLine strCompName & "," & objComputer.Description    
Next
Outputfile.close

inhoud van output.csv:
code:
1
2
3
Compnaam,Desc
pc01,omschrijving 1
pc02,test omschrijving 2

[ Voor 20% gewijzigd door Verwijderd op 06-10-2004 13:08 ]


Verwijderd

Topicstarter
zeker wel, prachtig! bedankt voor je hulp
Pagina: 1