Avatar billede kennith Nybegynder
13. december 2005 - 15:17 Der er 44 kommentarer og
1 løsning

Oprette brugere i AD og sætte homedir

Hej,

Jeg skal bruge et script der kan oprette nye brugere i AD og sætte deres homedir.

Jeg har fundet en lille ting som jeg tror kunne være lige det jeg søger. http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnclinic/html/scripting04132004.asp Her opretter man brugerene ved hjælp af vbscript som henter sine data ind fra fra et excel ark. Jeg er meget grøn i scriping og mangler lige en ting for at kunne bruge de eksempler der er på denne hjemmeside. Jeg skal have scriptet til at oprette et homedir til alle de nye brugere også. er der en der lige kender variablen til dette? og kan give mig et eksempel på hvordan det skrives ind Så ville det gøre mit livmeget nemmere *S*

På forhånd tak
Kennith
Avatar billede killerclown Nybegynder
13. december 2005 - 15:20 #1
Hej Kennith !
SKAL det være Excel ?
Det kan godt lade sig gøre med Excel, men personligt foretrækker jeg ;-sepereret
/Killer
Avatar billede kennith Nybegynder
13. december 2005 - 15:59 #2
Det vil også være helt fint, det var bare af hansyn til andre brugere af det, det er væsentligt nemmere at få kontordamen til at lave et excel ark. Men ; sepererede er fint.

Der skal være følgende info om de nye brugere:

Fornavn
efternavn
brugernavn
password
hvilken ou de skal i
hjemmebibliotek (hvis ikke dette eksistere skal det oprettes ligesom når man laver brugeren i users and computeres)
Avatar billede kedde65 Praktikant
13. december 2005 - 16:34 #3
Det er ganske nemt at lave både løsningen der lægger det opi AD via. Excel eller ; sepereret... jeg ville helt klart foretrække at kontor damen sad med en Excel Løsning, hvor hun blot skulle rette nogle data og herefter trykke på den store knap og så blev det skudt afsted til AD. Det med et en kontordame retter i en ;sepereret fil er noget juks.

Jeg vil gerne lave det til dig, hvis du skulle have behov :-)

/Christian
ck@officekonsulenterne.dk
Avatar billede kennith Nybegynder
13. december 2005 - 16:46 #4
Jeg har ikke tid til at sætte mig ind i det men syntes også den artikel jeg havde fundet så ud til at være meget let tilgængelig. Og så manglede den som sagt lige den med hjemmebibliotekerne.

Jeg tager imod med kyshånd hvis der er en der har tiden til at fikse det og smider også gerne nogle flere point efter.

Med henblik på kontor damen så er jeg ikke liiiige helt sikker på hun får lov at fyre nogen scripts af til min server *G* men hun kan godt få lov at lave alt taste arbejdet hehe....
Avatar billede killerclown Nybegynder
13. december 2005 - 17:08 #5
Skal det KUN være de ting, du har beskrevet de skal taste ind ?
/Killer
Avatar billede kennith Nybegynder
13. december 2005 - 17:12 #6
ja det er det eneste jeg har brug for normalt.....hmmmmm kommer lige til at tænke hvis det kan lade sig gøre ville det være rigtig rart hvis den også kan styre dialin altså om den er allow, deny eller remote policy.
Avatar billede killerclown Nybegynder
13. december 2005 - 17:14 #7
okies .....
Jeg kan jo ikke uploade xls filer herinde, men kan jeg sende dig en xls pr mail
med en "Skabelon"?
Avatar billede killerclown Nybegynder
13. december 2005 - 17:42 #8
Ellers kan du da forresten bare suge den her fra:
http://www.killerclown.dk/brugere.xls
Hvis du lægger denne på c:\ drevet, kan du afvikle flg. script :

HUSK, at ændre rootdomain og UPN !!!!


TextXL = "c:\brugere.xls"
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set oXL = WScript.CreateObject("EXCEL.application")
    oXL.Visible = True
      oXL.workbooks.open TextXL
    oXL.sheets("Ark1").Activate
    oXL.ActiveSheet.range("A2").Activate
    WScript.Echo  oXL.activecell.Value
    root = "dc=whatever,dc=whatever,dc=whatever" ' JERES ROOT DOMAIN
    oXL.activecell.offset(1, 0).Activate
    Do While oXL.activecell.Value <> ""     
        OU = oXL.activecell.offset(0, 6).Value
        Set oOU=GetObject("LDAP://OU=" & OU & "," & root)
        Set u = oOU.Create("User", "cn=" & oXL.activecell.offset(0, 1).Value & " " & oXL.activecell.offset(0, 2).Value)
        DisplayNavn = oXL.activecell.offset(0, 1).Value + " " + oXL.activecell.offset(0, 2).Value
        u.Put "sAMAccountName", oXL.activecell.offset(0, 0).Value
        u.Put "givenName", oXL.activecell.offset(0, 1).Value
        u.Put "sn", oXL.activecell.offset(0, 2).Value
        u.Put "userPrincipalName", oXL.activecell.offset(0, 0).Value & "@JERESUPN.com"'UPN DOMÆNE
        u.Put "profilePath", oXL.activecell.offset(0, 5).Value
        u.Put "homeDrive", "Y:"
        u.Put "homeDirectory", oXL.activecell.offset(0, 7).Value
        u.Put "displayName", DisplayNavn
        u.SetInfo
        U.SetPassword oXL.activecell.offset(0, 4).Value
        U.AccountDisabled = False
        U.MsNPAllowDialin = True
        U.SetInfo
        Set u = Nothing
        If Not fso.folderexists(oXL.activecell.offset(0, 5).Value) Then
        fso.createfolder(oXL.activecell.offset(0, 5).Value)
        End If
        If Not fso.folderexists(oXL.activecell.offset(0, 7).Value) Then
        fso.createfolder(oXL.activecell.offset(0, 7).Value)
        End If
        oXL.activecell.offset(1, 0).Activate
    Loop
oXL.application.quit
Wscript.Echo    "Færdig !!!!"
Avatar billede kennith Nybegynder
13. december 2005 - 19:25 #9
Jeg takker for bidraget jeg er lige ved at køre en server op hjemme så jeg kan teste det.
Avatar billede kennith Nybegynder
13. december 2005 - 19:49 #10
Jeg ser lige at det ikke inkluderede mit sidste ønske *G* Man har vel lov at være grådig ;) nej kan det lade sig gøre at sætte dail in rettighedderne også?
Avatar billede kedde65 Praktikant
13. december 2005 - 19:54 #11
U.MsNPAllowDialin = oXL.activecell.offset(0, 8).Value

Så sætter du bare en kolonne mere i Excel(i enden), så er den der :-) Der sdkal bare stå true eller false i den kolonne.

VH CK
Avatar billede kennith Nybegynder
13. december 2005 - 19:56 #12
Kanon og hvor i scriptet skal den ind?
Avatar billede kedde65 Praktikant
13. december 2005 - 19:58 #13
Du erstatter bare denne linie U.MsNPAllowDialin = True med det jeg skrev før .-)

VH CK
Avatar billede kennith Nybegynder
13. december 2005 - 19:59 #14
ohh ser lige den er der faktisk det står bare til true så jer erstatter vel bare delen efter = ??
Avatar billede kennith Nybegynder
13. december 2005 - 20:00 #15
:D tak
Avatar billede killerclown Nybegynder
13. december 2005 - 20:13 #16
Jup :o)
Jeg troede ikke, du ville lade dem bestemme det, så jeg satte den bare til true ;)

/Killer
Avatar billede kennith Nybegynder
13. december 2005 - 21:15 #17
øhhh nu kommer dumme spm men hvad skal der stå ved DC testdom.local 3 gange eller hvad?

Scriptet genererer fejl ved line 13 char 9
Avatar billede kennith Nybegynder
13. december 2005 - 21:16 #18
altså der hvor der er skrevet whatever ved root domain
Avatar billede killerclown Nybegynder
13. december 2005 - 21:18 #19
Hvis dit root domain hedder testdom.local, skal der stå

root = "dc=testdom,dc=local"

Forresten kan du evt lægge den der dial-in-ok-eller ej der hvor fuldenavn er i excel'en. ( oXL.activecell.offset(0, 3).Value )

Den bruges alligevel ikke :o)

Jeg skiftede spor midt i det hele :p

/Killer
Avatar billede kennith Nybegynder
13. december 2005 - 21:22 #20
ok hvad bliver brugerns login navn
Avatar billede killerclown Nybegynder
13. december 2005 - 21:23 #21
det er initialerne
Avatar billede kennith Nybegynder
13. december 2005 - 21:29 #22
Der kommer fejl i lineie 28 noget med syntax?

det er denne linie "        u.SetInfo"
Avatar billede killerclown Nybegynder
13. december 2005 - 21:31 #23
to sekunder ... tjekker lige
Avatar billede killerclown Nybegynder
13. december 2005 - 21:34 #24
Bliver den første bruger oprettet ?
Avatar billede kennith Nybegynder
13. december 2005 - 21:36 #25
yep den blev oprettet men er disablet og har ikke dial in. til tilføjede det foreslåede efter = og har sat den til true i col 8
Avatar billede killerclown Nybegynder
13. december 2005 - 21:39 #26
det er det !
dial-in er en bool værdi.
Hvis brugeren godt må lave dial-in bør dine indtastere blot skrive ja, eller Nej for ikke.

Derefter skal værdien sættes i scriptet.

Læg lige scriptet op her, så retter jeg lidt i det...

/Killer
Avatar billede kennith Nybegynder
13. december 2005 - 21:49 #27
TextXL = "c:\userlist.xls"
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set oXL = WScript.CreateObject("EXCEL.application")
    oXL.Visible = True
      oXL.workbooks.open TextXL
    oXL.sheets("Ark1").Activate
    oXL.ActiveSheet.range("A2").Activate
    WScript.Echo  oXL.activecell.Value
    root = "dc=testdom,dc=local" ' JERES ROOT DOMAIN
    oXL.activecell.offset(1, 0).Activate
    Do While oXL.activecell.Value <> ""     
        OU = oXL.activecell.offset(0, 6).Value
        Set oOU=GetObject("LDAP://OU=" & OU & "," & root)
        Set u = oOU.Create("User", "cn=" & oXL.activecell.offset(0, 1).Value & " " & oXL.activecell.offset(0, 2).Value)
        DisplayNavn = oXL.activecell.offset(0, 1).Value + " " + oXL.activecell.offset(0, 2).Value
        u.Put "sAMAccountName", oXL.activecell.offset(0, 0).Value
        u.Put "givenName", oXL.activecell.offset(0, 1).Value
        u.Put "sn", oXL.activecell.offset(0, 2).Value
        u.Put "userPrincipalName", oXL.activecell.offset(0, 0).Value & "@testdom.local"'UPN DOMÆNE
        u.Put "profilePath", oXL.activecell.offset(0, 5).Value
        u.Put "homeDrive", "Y:"
        u.Put "homeDirectory", oXL.activecell.offset(0, 7).Value
        u.Put "displayName", DisplayNavn
        u.SetInfo
        U.SetPassword oXL.activecell.offset(0, 4).Value
        U.AccountDisabled = False
        U.MsNPAllowDialin = True
        U.SetInfo
        Set u = Nothing
        If Not fso.folderexists(oXL.activecell.offset(0, 5).Value) Then
        fso.createfolder(oXL.activecell.offset(0, 5).Value)
        End If
        If Not fso.folderexists(oXL.activecell.offset(0, 7).Value) Then
        fso.createfolder(oXL.activecell.offset(0, 7).Value)
        End If
        oXL.activecell.offset(1, 0).Activate
    Loop
oXL.application.quit
Wscript.Echo    "Færdig !!!!"
Avatar billede kennith Nybegynder
13. december 2005 - 21:50 #28
Jeg prøvede lige at fjerne kolonnen med dialin og lave det som du havde gjort oprindeligt så lavede den brugeren som den skulle men der var ikke dailin enablet selv om den står til true
Avatar billede killerclown Nybegynder
13. december 2005 - 22:00 #29
Kigger lige på det
Avatar billede kennith Nybegynder
13. december 2005 - 22:01 #30
Jeg vil meget gerne smide nogle flere point efter det her det blev lidt mere omfattende end jeg regnede med.

Kan man ikke på en eller anden vis få loginnavnet til at være navnet på hjemmemappen jeg har prøvet med %username% men den gik til alles store overraskelse ikke *G* nu har jeg bare en mappe der hedder %username%
Avatar billede killerclown Nybegynder
13. december 2005 - 22:02 #31
hehe .. Jow da.
Hvad er stien til jeres hjemmemapper ?
Avatar billede killerclown Nybegynder
13. december 2005 - 22:05 #32
P.s.
Det ligner lidt en bug i ad users and computers, at de står til deny access.
Det virkede fint, da jeg sad på mit firma, men ikke her hjemme. (Ser det ud til. fordi brugeren ER rent faktisk enablet selv, om der står deny access :o)

Kigger lige videre på det.
Avatar billede kennith Nybegynder
13. december 2005 - 22:10 #33
\\server\homedir\brugernavn
og der skal ikke bruges roaming profile så der skal ikke sættes en profile path

hmmm lyder som en interessant detalje jeg har ikke lige mulighed for at teste her om det faktsik er slået til men jeg tager dit ord for det :)
Avatar billede kennith Nybegynder
13. december 2005 - 22:12 #34
Når man opretter bruger mappen er det så muligt at sætte rettigheder på den fra scriptet så det kun bliver brugen selv og Domain Admin der kan se i den

Hvis det er så laver jeg lige et nyt spm på den
Avatar billede kedde65 Praktikant
13. december 2005 - 22:16 #35
Ja det er muligt at sætte rettigheder på sådan en mappe med scriptet.

/Christian
Avatar billede killerclown Nybegynder
13. december 2005 - 22:18 #36
Problemet ser ud til at være hvis man ikke kører domain functional level 2003.
Hvis man kører native 2000, står det godt nok i LDAP'en, men ikke på property-sheetet for brugeren, så jeg kan altså ikke garantere, det virker med mindre du raiser dit f-level.


Dette skulle klare hjemmedrevet, og ikke putte profile på :

TextXL = "c:\userlist.xls"
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set oXL = WScript.CreateObject("EXCEL.application")
    oXL.Visible = True
      oXL.workbooks.open TextXL
    oXL.sheets("Ark1").Activate
    oXL.ActiveSheet.range("A2").Activate
    WScript.Echo  oXL.activecell.Value
    root = "dc=testdom,dc=local" ' JERES ROOT DOMAIN
    oXL.activecell.offset(1, 0).Activate
    Do While oXL.activecell.Value <> ""     
        OU = oXL.activecell.offset(0, 6).Value
        Set oOU=GetObject("LDAP://OU=" & OU & "," & root)
        Set u = oOU.Create("User", "cn=" & oXL.activecell.offset(0, 1).Value & " " & oXL.activecell.offset(0, 2).Value)
        DisplayNavn = oXL.activecell.offset(0, 1).Value + " " + oXL.activecell.offset(0, 2).Value
        u.Put "sAMAccountName", oXL.activecell.offset(0, 0).Value
        u.Put "givenName", oXL.activecell.offset(0, 1).Value
        u.Put "sn", oXL.activecell.offset(0, 2).Value
        u.Put "userPrincipalName", oXL.activecell.offset(0, 0).Value & "@killerclown.dk"'UPN DOMÆNE
        u.Put "homeDrive", "Y:"
        u.Put "homeDirectory", "\\server\homedir\" & oXL.activecell.offset(0, 0).Value
        u.Put "displayName", DisplayNavn
        u.SetInfo
        U.SetPassword oXL.activecell.offset(0, 4).Value
        U.AccountDisabled = False
        U.MsNPAllowDialin = True
        U.SetInfo
        Set u = Nothing
        If Not fso.folderexists(oXL.activecell.offset(0, 5).Value) Then
        fso.createfolder(oXL.activecell.offset(0, 5).Value)
        End If
        If Not fso.folderexists(oXL.activecell.offset(0, 7).Value) Then
        fso.createfolder(oXL.activecell.offset(0, 7).Value)
        End If
        oXL.activecell.offset(1, 0).Activate
    Loop
oXL.application.quit
Wscript.Echo    "Færdig !!!!"
Avatar billede killerclown Nybegynder
13. december 2005 - 22:19 #37
STOOOOP !!!!
Glemte lige, at tjekke for mappen :o)

TextXL = "c:\userlist.xls"
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set oXL = WScript.CreateObject("EXCEL.application")
    oXL.Visible = True
      oXL.workbooks.open TextXL
    oXL.sheets("Ark1").Activate
    oXL.ActiveSheet.range("A2").Activate
    WScript.Echo  oXL.activecell.Value
    root = "dc=testdom,dc=local" ' JERES ROOT DOMAIN
    oXL.activecell.offset(1, 0).Activate
    Do While oXL.activecell.Value <> ""     
        OU = oXL.activecell.offset(0, 6).Value
        Set oOU=GetObject("LDAP://OU=" & OU & "," & root)
        Set u = oOU.Create("User", "cn=" & oXL.activecell.offset(0, 1).Value & " " & oXL.activecell.offset(0, 2).Value)
        DisplayNavn = oXL.activecell.offset(0, 1).Value + " " + oXL.activecell.offset(0, 2).Value
        u.Put "sAMAccountName", oXL.activecell.offset(0, 0).Value
        u.Put "givenName", oXL.activecell.offset(0, 1).Value
        u.Put "sn", oXL.activecell.offset(0, 2).Value
        u.Put "userPrincipalName", oXL.activecell.offset(0, 0).Value & "@killerclown.dk"'UPN DOMÆNE
        u.Put "homeDrive", "Y:"
        u.Put "homeDirectory", "\\server\homedir\" & oXL.activecell.offset(0, 0).Value
        u.Put "displayName", DisplayNavn
        u.SetInfo
        U.SetPassword oXL.activecell.offset(0, 4).Value
        U.AccountDisabled = False
        U.MsNPAllowDialin = True
        U.SetInfo
        Set u = Nothing
        If Not fso.folderexists("\\server\homedir\" & oXL.activecell.offset(0, 0).Value) Then
        fso.createfolder("\\server\homedir\" & oXL.activecell.offset(0, 0).Value)
        End If
        oXL.activecell.offset(1, 0).Activate
    Loop
oXL.application.quit
Wscript.Echo    "Færdig !!!!"
Avatar billede kennith Nybegynder
13. december 2005 - 22:21 #38
ok jeg prøver ellers må det sq komme på et senere tidspunkt 1000 tak for hjælpen jeg laver et nyt spm vedr. brugerrettighederne
Avatar billede killerclown Nybegynder
13. december 2005 - 22:25 #39
hehe .. Ja, der er en del, der lige skal tages højde for ;)
Denne script vil virke med alt, hvis dine indtastere bestemmer om brugeren må dial'e in med ja eller nej i 0,8 ( Og hvis domain functional level er 2003) Her lige raiset mit eget her hjemme, og nu virker alt som det skal !! :o)
Avatar billede killerclown Nybegynder
13. december 2005 - 22:26 #40
Hov .. scriptet kommer lige her :o)

TextXL = "c:\userlist.xls"
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set oXL = WScript.CreateObject("EXCEL.application")
    oXL.Visible = True
    oXL.workbooks.open TextXL
    oXL.sheets("Ark1").Activate
    oXL.ActiveSheet.range("A2").Activate
    WScript.Echo  oXL.activecell.Value
    root = "dc=testdom,dc=local"
    oXL.activecell.offset(1, 0).Activate
    Do While oXL.activecell.Value <> ""     
        OU = oXL.activecell.offset(0, 6).Value
        Set oOU=GetObject("LDAP://OU=" & OU & "," & root)
        Set u = oOU.Create("User", "cn=" & oXL.activecell.offset(0, 1).Value & " " & oXL.activecell.offset(0, 2).Value)
        DisplayNavn = oXL.activecell.offset(0, 1).Value + " " + oXL.activecell.offset(0, 2).Value
        u.Put "sAMAccountName", oXL.activecell.offset(0, 0).Value
        u.Put "givenName", oXL.activecell.offset(0, 1).Value
        u.Put "sn", oXL.activecell.offset(0, 2).Value
        u.Put "userPrincipalName", oXL.activecell.offset(0, 0).Value & "@testdom.local"'UPN DOMÆNE
        u.Put "homeDrive", "Y:"
        u.Put "homeDirectory", "\\server\homedir\" & oXL.activecell.offset(0, 0).Value
        u.Put "displayName", DisplayNavn
        u.SetInfo
        U.SetPassword oXL.activecell.offset(0, 4).Value
        U.AccountDisabled = False
        u.setinfo
        dialinok = oXL.activecell.offset(0, 8).Value
        If UCase(dialinok) = "JA" Then       
            U.MsNPAllowDialin = True
            else
            U.MsNPAllowDialin = False
        End If
        U.SetInfo
        Set u = Nothing
        If Not fso.folderexists("\\server\homedir\" & oXL.activecell.offset(0, 0).Value) Then
        fso.createfolder("\\server\homedir\" & oXL.activecell.offset(0, 0).Value)
        End If
        oXL.activecell.offset(1, 0).Activate
    Loop
oXL.application.quit
Wscript.Echo    "Færdig !!!!"
Avatar billede kennith Nybegynder
13. december 2005 - 22:29 #41
Tusinde tak :)

Kennith
Avatar billede killerclown Nybegynder
13. december 2005 - 22:31 #42
np .. thx for points
Avatar billede kennith Nybegynder
13. december 2005 - 22:33 #43
du er velkommen og er er oprettet et nye spm med rettighederne hvis du kan holde til mere *G* så er er 150 point mere
Avatar billede kennith Nybegynder
13. december 2005 - 22:36 #44
lig lige et svar i den også jeg syntes du har fortjent lidt ekstra for din indsats
Avatar billede killerclown Nybegynder
13. december 2005 - 23:11 #45
hehe thx :p
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