Toon posts:

Overzicht AD-gebruikersinformatie verzamelen?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,

Voor een aantal klanten moet ik een printbare overzicht maken van haar gebruikersaccounts (+e-mailadressen). Iets wat ik niet heb kunnen vinden , maar bestaat er een tool die uit de AD die informatie verzamelt en kan zetten in een txt file oid?

Verwijderd

Met LDIFDE kun CVSDE kun je gebruikers exporteren naar een file. Zie mijn vorige post.

  • BFS
  • Registratie: Augustus 2001
  • Laatst online: 12-02 10:15

BFS

Rude awakening

Het kan vast een stuk mooier maar ik heb het volgende VBS script in elkaar geflanst om een soort telefoonlijst te genereren naar een bestandje genaamd telefoonlijst.html. Hierbij moet 'LDAP://dc=contoso,dc=local' veranderd worden naar de naam van je lokale domein.

VBScript:
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
'========================================================================='
' AUTHOR:  Kees Baggerman                         '
' COMPANY: Quaere                             '
' DATE:    23-10-2007                             '  
' Version: 1.0                                '
' COMMENT: VBS script with Output:                    '
'       - AD information                      '
'                                     '
'                                     '
'                                     '
'========================================================================='


'========================================================================='
' generate a filename             '
'========================================================================='


    strOutputFile = "telefoonlijst.html"

    Set objFileSystem = CreateObject("Scripting.fileSystemObject")
    Set objOutputFile = objFileSystem.CreateTextFile(strOutputFile, TRUE)


'========================================================================='
' Create HTML Formatting                          '
'========================================================================='

    objOutputFile.WriteLine "<html>"
    objOutputFile.WriteLine "<head>"
    objOutputFile.WriteLine "<title>Telefoonlijst</title>"
    objOutputFile.WriteLine "<style>"
    objOutputFile.WriteLine "tr{vertical-align:top;}"
    objOutputFile.WriteLine "th{background-color:#AACFE4;text-align:center;font-family:Tahoma,Arial;color=black;font-size:12px;font-weight:bold;}"
    objOutputFile.WriteLine "td.td1{width:20%;background-color:#6E8BB6;font-family:Tahoma,Arial;color=white;font-size:9px;height:40px;}"
    objOutputFile.WriteLine "td.td2{width:20%;background-color:#AACFE4;font-family:Tahoma,Arial;color=black;font-size:9px;height:40px;}"
    objOutputFile.WriteLine "td.td2_40{width:40%;background-color:#AACFE4;font-family:Tahoma,Arial;color=black;font-size:10px;height:40px;}"
    objOutputFile.WriteLine "td.td2_30{width:160%;background-color:#AACFE4;font-family:Tahoma,Arial;color=black;font-size:10px;height:40px;}"
    objOutputFile.WriteLine "td.td2_8{width:40px;background-color:#AACFE4;font-family:Tahoma,Arial;color=black;font-size:10px;height:40px;}"
    objOutputFile.WriteLine "</style>"

    objOutputFile.WriteLine "</head>"

    objOutputFile.WriteLine "<BODY>"

    objOutputFile.WriteLine "<table border=1 width=100% cellspacing=0 cellpadding=3 bordercolor=black bordercolordark=#AACFE5>"
    objOutputFile.WriteLine "  <tr><th colspan=100%>Telefoonlijst</th></tr>"
    objOutputFile.WriteLine "</table>"
    objOutputFile.WriteLine "<br>"

    objOutputFile.WriteLine "</BODY>"


'========================================================================='
' Add Print button                            '
'========================================================================='
    
    objOutputFile.WriteLine "<input type=button "
    objOutputFile.WriteLine "  onClick=window.print() "
    objOutputFile.WriteLine " value= Print This Page />"
    objOutputFile.WriteLine "<br>"
    objOutputFile.WriteLine "<br>"
    objOutputFile.WriteLine "<br>"


'========================================================================='
' Create Tables Formatting                        '
'========================================================================='


    objOutputFile.WriteLine "<table border=1 width=100% cellspacing=0 cellpadding=3 bordercolor=black bordercolordark=#AACFE5>"
    objOutputFile.WriteLine "<tr>"
    objOutputFile.WriteLine "<td class=td1>Weergave naam :</td>"
    objOutputFile.WriteLine "<td class=td1>Inlognaam     :</td>"
    objOutputFile.WriteLine "<td class=td1>Telefoonnummer: </td>"
    objOutputFile.WriteLine "<td class=td1>Emailadres    : </td>"
    objOutputFile.WriteLine "<td class=td1>Locatie       : </td>"
    objOutputFile.WriteLine "</tr>"


'========================================================================='
' Get data from AD                                '
'========================================================================='

On Error Resume Next

Const ADS_SCOPE_SUBTREE = 2

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://dc=contoso,dc=local' WHERE objectCategory='user'"  
Set objRecordSet = objCommand.Execute


Do Until objRecordSet.EOF
    strPath = objRecordSet.Fields("ADsPath").Value
    Set objUser = GetObject(strPath)
    objOutputFile.WriteLine "<table border=1 width=100% cellspacing=0 cellpadding=3 bordercolor=black bordercolordark=#AACFE5>"
    objOutputFile.WriteLine "<tr>"
    objOutputFile.WriteLine "<td class=td2>" & objUser.displayName & "</td>"
    objOutputFile.WriteLine "<td class=td2>" & objUser.userPrincipalName & "</td>"
    objOutputFile.WriteLine "<td class=td2>"  & objUser.telephoneNumber & "</td>"
    objOutputFile.WriteLine "<td class=td2>" & objUser.mail & "</td>"
    objOutputFile.WriteLine "<td class=td2>" & objUser.physicalDeliveryOfficeName & "</td>"
    objOutputFile.WriteLine "</tr>"
    objOutputFile.WriteLine "</table>"
    objRecordSet.MoveNext
Loop


objOutputFile.WriteLine "</HTML>"

When did I realize I was God? Well, I was praying and suddenly I realized that I was talking to myself


Verwijderd

Topicstarter
Dank jullie wel.
beiden even proberen!!

Verwijderd

Topicstarter
Sorry ben niet in scripting thuis.
Hoe start ik het script? Extensie veranderen in een executable??

  • BFS
  • Registratie: Augustus 2001
  • Laatst online: 12-02 10:15

BFS

Rude awakening

Copy/paste het documentje in notepad en sla het op als *iets*.vbs. Daarna dien je dus nog wel even die LDAP verwijzing aan te passen en daarna kun je het bestand opslaan en het starten door erop te dubbelklikken.

When did I realize I was God? Well, I was praying and suddenly I realized that I was talking to myself


Verwijderd

Topicstarter
heel mooi, alleen hij genereert een leeg exemplaar. (geen gegevens) ik ga even klooien , dank

  • BFS
  • Registratie: Augustus 2001
  • Laatst online: 12-02 10:15

BFS

Rude awakening

Verwijderd schreef op dinsdag 06 november 2007 @ 14:04:
heel mooi, alleen hij genereert een leeg exemplaar. (geen gegevens) ik ga even klooien , dank
Dan leest hij je AD niet uit, contoso en local moeten dus veranderd worden in het domein waarop jij/jullie inloggen.

When did I realize I was God? Well, I was praying and suddenly I realized that I was talking to myself


Verwijderd

Topicstarter
contoso veranderd uiteraard, local blijft local.

  • BFS
  • Registratie: Augustus 2001
  • Laatst online: 12-02 10:15

BFS

Rude awakening

Je draait het wel als admin of iig als user die rechten genoeg heeft om de AD uit te lezen? Ik heb het getest tegen een 2000 native domain.

edit:

Net ook nog even tegen een SBS servertje gehouden en ook dat werkt?

[ Voor 24% gewijzigd door BFS op 06-11-2007 14:14 ]

When did I realize I was God? Well, I was praying and suddenly I realized that I was talking to myself


Verwijderd

Topicstarter
Ja, als administrator ingelogd. Ik meld me nog mocht het niet lukken. (SBS)

Op het moment dat ik het script run, wordt het systeem ook heel traag. Het gegenereerde html bestand blijft ook knipperen alsof het in gebruik is. (+/-30 users)

het process wscript.exe vraagt opeens heel veel CPU, en het systeem is niet vooruit te branden. Gaat dit wel goed.......

[ Voor 76% gewijzigd door Verwijderd op 06-11-2007 14:19 ]


  • the-edge
  • Registratie: Juni 2005
  • Laatst online: 29-01 11:21
Leuk script, had ik net nodig! :P

Verwijderd

Topicstarter
werkt het bij jou wel the-edge??

Op een gegeven moment krijg ik een VISUAL C++ RUNTIME ERROR :(

Ik ga het even op een andere server proberen (eveneens SBS2003)

EDIT: op een andere server werkt hij wel, niets mis met het script dus, bedankt!

[ Voor 95% gewijzigd door Verwijderd op 06-11-2007 14:28 ]


  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Je kan je vraag ook inwilligen met een one-liner commandline opdracht:
dsquery user | dsget user -display -email
:)

  • BFS
  • Registratie: Augustus 2001
  • Laatst online: 12-02 10:15

BFS

Rude awakening

elevator schreef op dinsdag 06 november 2007 @ 16:02:
Je kan je vraag ook inwilligen met een one-liner commandline opdracht:
dsquery user | dsget user -display -email
:)
Maar mijn 118 extra regels code generen wel een mooie HTML file met Print button!

Voor dat wat waard is natuurlijk ;)

When did I realize I was God? Well, I was praying and suddenly I realized that I was talking to myself

Pagina: 1