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
120
121
122
|
Dim oXL
Dim u
Dim c
Dim root
Dim ou
Dim TextXL
Dim CRLF
Dim oArgs
'Get the command line args
set oArgs=wscript.arguments
CRLF = Chr(13) & Chr(10)
'If no command line arguments provided, prompt for file containing users to add
If oArgs.Count = 0 Then
TextXL = InputBox("This scripts reads an Excel spreadsheet and adds" & _
"users from the Windows NT DS via ADSI." & CRLF & CRLF & _
"Before starting, change the DS root in the EXCEL spreadsheet to match " & _
"your DS." & CRLF & CRLF & _
"Type in the path of a file containing users to add or delete" & CRLF & CRLF & _
"Sample Add User file: ADDUSERS.XLS" & CRLF & _
"Sample Delete User file: DELUSERS.XLS" & CRLF)
'Else file containing users is the first argument
Else
TextXL = oArgs.item(0)
End If
If TextXL = "" Then
WScript.Echo "No input file provided. Stopping the script now."
WScript.Quit(1)
End If
'We will use ou to control loop, so set initial value to null
ou = ""
'Start EXCEL and display it to the user
Set oXL = WScript.CreateObject("EXCEL.application")
oXL.Visible = True
'Open the workbook passed in the command line
oXL.workbooks.open TextXL
'Activate the Add page
' oXL.sheets("Del").Activate
'Put the cursor in the starting cell and read the DS root
oXL.ActiveSheet.range("A1").Activate ' this cell has the DS root in it
'Show it to the user
WScript.Echo oXL.activecell.Value
'This is the starting point in the ds
root = "DC=XYZ,DC=XYZ,DC=de"
'Step to the next row
oXL.activecell.offset(1, 0).Activate
'Until we run out of rows
Do While oXL.activecell.Value <> ""
ou = "ou=NewUsers"
'Compose the ADSI path...
s = "LDAP://" + ou+"," + root
WScript.Echo s
'And get the object
Set c = GetObject(s)
'Compose the user common name name from first and last names...
uname = "CN=" + oXL.activecell.offset(0, 2).Value + "\, " + oXL.activecell.offset(0, 1).Value
'Create the new user object...
Set u = c.Create("user", uname)
uname =oXL.activecell.offset(0, 2).Value + ", " + oXL.activecell.offset(0, 1).Value
'Set the properties of the new user
u.Put "givenName", oXL.activecell.offset(0, 1).Value 'givenName
u.Put "sn", oXL.activecell.offset(0, 2).Value 'sn
u.Put "displayName", uname 'Displayname
u.Put "sAMAccountName", oXL.activecell.offset(0, 4).Value 'Sam Acct
If oXL.activecell.offset(0, 7).Value <> "" Then
If oXL.activecell.offset(0, 7).Value = "Tutor" Then
u.Put "description", "XYZ"
u.Put "department", "XYZ"
End If
Else
u.Put "description", "XYZ"
u.Put "department", "XYZ"
End If
u.Put "profilePath", "\\XYZ\profiles\" + oXL.activecell.offset(0, 4).Value
u.Put "homeDirectory", "\\XYZ\users\" + oXL.activecell.offset(0, 4).Value
u.Put "homeDrive", "T" 'homeDrive
u.Put "scriptPath", "drucker.bat" 'script
u.Put "streetAddress", "XYZ" 'Strasse
u.Put "postalCode", "XYZ"
u.Put "st", "XYZ"
u.Put "l", "XYZ"
'...and update the DS
u.SetInfo
'Done with this object, discard it
Set u = Nothing
'Step to the next user...
oXL.activecell.offset(1, 0).Activate 'Next row
Loop
'Done. close excel spreadsheet
oXL.application.quit
|