Avatar billede fritter25 Nybegynder
28. juli 2005 - 14:10 Der er 16 kommentarer og
2 løsninger

Oprette flere brugere ved VB Script.

Hejsa.

Jeg skal oprette en række brugere på min DC.
Jeg har dog et par problemer.

1) Jeg kan ikke logge ind med den bruger som jeg opretter. Der står ikke noget i "User Logon Name"

2) Hvordan får jeg sat, at brugeren selv skal ændre password første gang de logger på?

Her er mit script:

' VBScript source code
Const INPUT_FILE_NAME = "C:\Brugere.txt"
'Her er navnet og placering for tekstfilen
Const FOR_READING = 1


Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile(INPUT_FILE_NAME, FOR_READING)
MsgBox "Der oprettes brugere....."
Do While objTextFile.AtEndOfStream <> True

strTextline = objTextFile.Readline
If inStr(strTextline, ",") > 0 Then
arrBrugere = split(strTextline, ",")
'Wscript.Echo "Brugernavn: " & arrBrugere(0)
'Wscript.Echo "Efternavn: " & arrBrugere(1)
'Wscript.Echo "Fornavn: " & arrBrugere(2)
'Wscript.Echo "Password: " & arrBrugere(3)



'For Each strBrugere In arrBrugere

'Her skal der følgende parameter erstattes:
'("LDAP://OU=Brugere,dc=data,dc=local")
Set objOU = GetObject("LDAP://OU=Brugere,dc=data,dc=local")
Set objUser = objOU.Create("User", "cn=" & arrBrugere(0))
objUser.Put "sAMAccountName", arrBrugere(0) & " "
objUser.Put "givenName","" & arrBrugere(2) & " "
objUser.Put "sn","" & arrBrugere(1) & " "
objUser.Put "displayName","" & arrBrugere(2) & " " & arrBrugere(1) & ""
objUser.Put "pwdLastSet", 0

'objUser.SetPassword "" & arrBrugere(3) "
objUser.SetInfo

Set objEditUser = GetObject _
("LDAP://cn=" & arrBrugere(0) & ",ou=Brugere,dc=data,dc=local")

objEditUser.SetPassword "test" & arrBrugere(3) & " "

'Her skal "Server" erstattes med den server hvor din "Profiler" mappe er oprettet
objEditUser.Put "homeDirectory", "\\server\test\" & arrBrugere(0)
objEditUser.Put "homeDrive", "Z:"
objEditUser.AccountDisabled = FALSE
objEditUser.SetInfo
End If
Loop
objTextFile.Close
Wscript.Echo "Alle brugere er oprettet!"
Wscript.Quit
Avatar billede killerclown Nybegynder
28. juli 2005 - 14:15 #1
Hey fritter !
Du skal huske principalname :

objUser.Put "userPrincipalName", arrBrugere(0) & "@<DIT DOMÆNENAVN>"

/Killer
Avatar billede fritter25 Nybegynder
28. juli 2005 - 14:45 #2
Det er sgu godt set.

Så langt så godt. Jeg kan desværre stadig ikke logge på med brugeren. Det er som om, at den ikke kender mit password.

Min txtfil ser således ud:

hha,Hansen,Hans,test   
jje,Jensen,Jens,test
ppe,Petersen,Peter,test
jjo,Johnsen,John,test

Jeg vil også gerne have at der skal ændres password
Avatar billede killerclown Nybegynder
28. juli 2005 - 15:05 #3
Ja, du kan ikke logge brugeren på, før du sætter denne attribut også :o)

objUser.AccountDisabled = False

/Killer
Avatar billede killerclown Nybegynder
28. juli 2005 - 15:11 #4
Det burde forresten også klare det der med, at de skal skifte passwordet første gang ;)
/Killer
Avatar billede fritter25 Nybegynder
28. juli 2005 - 15:17 #5
Hmmm.

Nu ser mit script således ud:

' VBScript source code
Const INPUT_FILE_NAME = "C:\Brugere.txt"
'Her er navnet og placering for tekstfilen
Const FOR_READING = 1


Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile(INPUT_FILE_NAME, FOR_READING)
MsgBox "Der oprettes brugere....."
Do While objTextFile.AtEndOfStream <> True

strTextline = objTextFile.Readline
If inStr(strTextline, ",") > 0 Then
arrBrugere = split(strTextline, ",")
'Wscript.Echo "Brugernavn: " & arrBrugere(0)
'Wscript.Echo "Efternavn: " & arrBrugere(1)
'Wscript.Echo "Fornavn: " & arrBrugere(2)
'Wscript.Echo "Password: " & arrBrugere(3)



'For Each strBrugere In arrBrugere

'Her skal der følgende parameter erstattes:
'("LDAP://OU=Brugere,dc=data,dc=local")
Set objOU = GetObject("LDAP://OU=Brugere,dc=data,dc=local")
Set objUser = objOU.Create("User", "cn=" & arrBrugere(0))
objUser.Put "sAMAccountName", arrBrugere(0) & ""
objUser.Put "givenName","" & arrBrugere(2) & " "
objUser.Put "sn","" & arrBrugere(1) & " "
objUser.Put "displayName","" & arrBrugere(2) & " " & arrBrugere(1) & ""
objUser.Put "userPrincipalName", arrBrugere(0) & "@<data>"
objUser.AccountDisabled = False

'objUser.SetPassword " & arrBrugere(3) "
objUser.SetInfo

Set objEditUser = GetObject _
("LDAP://cn=" & arrBrugere(0) & ",ou=Brugere,dc=data,dc=local")

objEditUser.SetPassword "test" & arrBrugere(3) & " "

'Her skal "Server" erstattes med den server hvor din "Profiler" mappe er oprettet
objEditUser.Put "homeDirectory", "\\Spla1\test\" & arrBrugere(0)
objEditUser.Put "homeDrive", "Z:"
objEditUser.AccountDisabled = FALSE
objEditUser.SetInfo
End If
Loop
objTextFile.Close
Wscript.Echo "Alle brugere er oprettet!"
Wscript.Quit

Det virker dog stadig ikke.

Kan du se hvad der er galt?
Avatar billede killerclown Nybegynder
28. juli 2005 - 16:12 #6
Fejlen skyldes, at du forsøger, at enable en account, der ikke findes i AD endnu.
Dette skulle "do the trick" :

' VBScript source code
Const INPUT_FILE_NAME = "C:\Brugere.txt"
'Her er navnet og placering for tekstfilen
Const FOR_READING = 1


Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile(INPUT_FILE_NAME, FOR_READING)
MsgBox "Der oprettes brugere....."
Do While objTextFile.AtEndOfStream <> True

strTextline = objTextFile.Readline
If inStr(strTextline, ",") > 0 Then
arrBrugere = split(strTextline, ",")
'Wscript.Echo "Brugernavn: " & arrBrugere(0)
'Wscript.Echo "Efternavn: " & arrBrugere(1)
'Wscript.Echo "Fornavn: " & arrBrugere(2)
'Wscript.Echo "Password: " & arrBrugere(3)



'For Each strBrugere In arrBrugere

'Her skal der følgende parameter erstattes:
'("LDAP://OU=Brugere,dc=data,dc=local")
Set objOU = GetObject("LDAP://OU=Brugere,dc=data,dc=local")
Set objUser = objOU.Create("User", "cn=" & arrBrugere(0))
objUser.Put "sAMAccountName", arrBrugere(0) & ""
objUser.Put "givenName","" & arrBrugere(2) & " "
objUser.Put "sn","" & arrBrugere(1) & " "
objUser.Put "displayName","" & arrBrugere(2) & " " & arrBrugere(1) & ""
objUser.Put "userPrincipalName", arrBrugere(0) & "@<data>"
'!!!! Her skal der lige sættes info Ellers er der ingen account at enable !!!!!
objUser.SetInfo
objUser.AccountDisabled = False

'objUser.SetPassword " & arrBrugere(3) "
objUser.SetInfo

Set objEditUser = GetObject _
("LDAP://cn=" & arrBrugere(0) & ",ou=Brugere,dc=data,dc=local")

objEditUser.SetPassword "test" & arrBrugere(3) & " "

'Her skal "Server" erstattes med den server hvor din "Profiler" mappe er oprettet
objEditUser.Put "homeDirectory", "\\Spla1\test\" & arrBrugere(0)
objEditUser.Put "homeDrive", "Z:"
objEditUser.AccountDisabled = FALSE
objEditUser.SetInfo
End If
Loop
objTextFile.Close
Wscript.Echo "Alle brugere er oprettet!"
Wscript.Quit


/Killer
Avatar billede killerclown Nybegynder
28. juli 2005 - 16:16 #7
HOV !!!
Du skal forresten lige fjerne de større end og mindre end tegn ved domænenavnet :o)

objUser.Put "userPrincipalName", arrBrugere(0) & "@data"
Avatar billede killerclown Nybegynder
28. juli 2005 - 16:34 #8
P.s.
Du behøver ikke, at sætte en objEditUser.
Du kan sagtens fortsætte med, at arbejde med det eksisterende objUser objekt :o)

/Killer
Avatar billede fritter25 Nybegynder
31. juli 2005 - 20:53 #9
Det virker perfekt. Mange tusinde tak. Der er dog lige en enkelt ting. Når jeg kigger i Active Directory Users and Computers - så er det deres logon navn der fremgår af listen. Kan man ikke lave det sådan, at det bliver brugerens fornavn og efternavn der bliver vist i AD?
Avatar billede killerclown Nybegynder
31. juli 2005 - 21:33 #10
hey !
det kan du sagtens.
bare saet cn = arrbrugere(2) & " " & arrbrugere(1)
i stedet for arrbrugere(0)

sorry mit lidt anderledes svar, men jeg sidder paa en ipaq i Jylland ;)
Avatar billede fritter25 Nybegynder
31. juli 2005 - 22:35 #11
Det er helt iorden.

Hvilken linie er det der skal ændres?
Avatar billede killerclown Nybegynder
01. august 2005 - 01:05 #12
proever lige, at skrive det fra denne her ;)

' VBScript source code
Const INPUT_FILE_NAME = "C:\Brugere.txt"
'Her er navnet og placering for tekstfilen
Const FOR_READING = 1


Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile(INPUT_FILE_NAME, FOR_READING)
MsgBox "Der oprettes brugere....."
Do While objTextFile.AtEndOfStream <> True

strTextline = objTextFile.Readline
If inStr(strTextline, ",") > 0 Then
arrBrugere = split(strTextline, ",")
'Wscript.Echo "Brugernavn: " & arrBrugere(0)
'Wscript.Echo "Efternavn: " & arrBrugere(1)
'Wscript.Echo "Fornavn: " & arrBrugere(2)
'Wscript.Echo "Password: " & arrBrugere(3)



'For Each strBrugere In arrBrugere
strnavn = arrbrugere(2) &" " & arrbrugere(1)
'Her skal der følgende parameter erstattes:
'("LDAP://OU=Brugere,dc=data,dc=local")
Set objOU = GetObject("LDAP://OU=Brugere,dc=data,dc=local")
'det er her vi saetter brugeren + navnet
Set objUser = objOU.Create("User", "cn=" & strnavn )
objUser.Put "sAMAccountName", arrBrugere(0) & ""
objUser.Put "givenName","" & arrBrugere(2) & " "
objUser.Put "sn","" & arrBrugere(1) & " "
objUser.Put "displayName","" & arrBrugere(2) & " " & arrBrugere(1) & ""
objUser.Put "userPrincipalName", arrBrugere(0) & "@data"
'!!!! Her skal der lige sættes info Ellers er der ingen account at enable !!!!!
objUser.SetInfo
objUser.AccountDisabled = False

'objUser.SetPassword " & arrBrugere(3) "
objUser.SetInfo
'hvis du ikke har fjernet getobject, skal vi lige kalde brugeren med cn igen
Set objEditUser = GetObject _
("LDAP://cn=" & strnavn  & ",ou=Brugere,dc=data,dc=local")

objEditUser.SetPassword "test" & arrBrugere(3) & " "

'Her skal "Server" erstattes med den server hvor din "Profiler" mappe er oprettet
objEditUser.Put "homeDirectory", "\\Spla1\test\" & arrBrugere(0)
objEditUser.Put "homeDrive", "Z:"
objEditUser.AccountDisabled = FALSE
objEditUser.SetInfo
End If
Loop
objTextFile.Close
Wscript.Echo "Alle brugere er oprettet!"
Wscript.Quit

/killer
Avatar billede fritter25 Nybegynder
01. august 2005 - 09:48 #13
Smukt!! Nu virker det. Jeg bliver dog nødt til, ikke at give brugerne password, samt at fjerne denne linie:

objEditUser.SetPassword "test" & arrBrugere(3) & " "

Så bliver de bedt om  at ændre password første gang de logger ind.
Avatar billede killerclown Nybegynder
01. august 2005 - 10:19 #14
fino !
saa faar du lige et svar ....

hvorfor saetter du ikke password ?

/killer
Avatar billede fritter25 Nybegynder
01. august 2005 - 10:48 #15
Så virker tingene desværre ikke. Det gør nu heller ikke så meget. Så længe der er blankt password, og brugeren er tvunget til at skifte første gang de logger på, så er der ikke noget problem.
Avatar billede fritter25 Nybegynder
01. august 2005 - 10:56 #16
Hov der er lige en enkelt ting.

Selvom de får oprettet deres eget drev som ligger på \\Spla1\test\ fremgår brugerens initialer ikke.

De kan heller ikke oprette en mappe der!

Kan du se problemet?
Avatar billede fritter25 Nybegynder
01. august 2005 - 11:04 #17
Ahhh. Tror nu bare at det er et rettigheds spørgsmål på drevet. Prøvede at ændre den til en anden mappe, og der var ingen problemer!
Avatar billede fritter25 Nybegynder
01. august 2005 - 11:12 #18
Jeg takker og bukker mig ydmygt i støvet. Tingene fungerer nu optimalt.

Endnu engang. Mange tak.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester