Micko77666 | Pas de soucis le voici, il y a surement mieux, mais il fonctionne en tout cas
Par contre, il faut élever les droits sinon pas de création de users.
Code :
- Dim WshNet, computername
- Set WshNet = CreateObject("Wscript.Network" )
- computername = WshNet.ComputerName
- Dim result, objUser
- Dim info_users(1000,4)
- Dim i
- Dim ligne
- Dim temp_tab(4)
- Dim nom, compte, password, groupe
- '************************************************
- Set WshShell = CreateObject("WScript.Shell" )
- 'excel *********
- Set objExcel = CreateObject("Excel.Application" )
- objExcel.Visible = false
- Set objWorkbook = objExcel.Workbooks.Open("\\ordi\Comptes.xls" )
- Set objWorksheet = objWorkbook.Worksheets(1)
- 'création du pointeur i, de la localisation de la ligne, et d'un tableau temporaire pour la fonction filter
- 'on parcourt le tableau
- for i=1 to 1000
- temp_tab(1) = objWorksheet.cells(i,1).value
- temp_tab(2) = objWorksheet.cells(i,2).value
- temp_tab(3) = objWorksheet.cells(i,3).value
- 'on recherche "computername" dans le tableau à une dimension, result contient le computername
- result = filter(temp_tab, computername, 1)
- info_users(i,1) = temp_tab(1)
- info_users(i,2) = temp_tab(2)
- info_users(i,3) = temp_tab(3)
- 'on cherche si la fonction filter a retourné un resultat, si oui, ces instructions sont effectuées
- for each x in result
- ligne = Cstr(i)
- next
- next
- 'Fermeture de l'application Excel
- objWorkBook.Close
- 'Désallocation mémoire
- Set objWorksheet = Nothing
- Set objWorkbook = Nothing
- Set objExcel = Nothing
- '**************************************************
- 'création users
- if Not IsNull(ligne) then
- nom = info_users(ligne,1)
- compte = info_users(ligne,2)
- password = info_users(ligne,3)
- groupe = info_users(ligne,4)
- Set colAccounts = GetObject("WinNT://"&nom&"" )
- 'test existence de l'utilisateur
- on error resume next
- set ouser=getobject("WinNT://"& nom &"/"&compte& ",user" )
- if err.number<>0 then
- 'wscript.echo "Ce compte n'existe pas encore, nous allons le créer."
- err.clear
- Set objUser = colAccounts.Create("user", compte)
- Const ADS_UF_DONT_EXPIRE_PASSWD = &h10000
- objPasswordExpirationFlag = ADS_UF_DONT_EXPIRE_PASSWD
- 'test de création mot de passe
- on error resume next
- objUser.SetPassword "@"& password
- if err.number<>0 then
- 'wscript.echo "Création du mot de passe."
- end if
- on error goto 0
- objUser.SetInfo
- objUser.Put "userFlags", objPasswordExpirationFlag
- 'wscript.echo "Utilisateur "+nom+" créé. Tentative d'affectation au groupe..."
- 'test d'ajout à un groupe
- on error resume next
- Set Group = GetObject("WinNT://" + Cstr(nom) + "/Administrateurs,group" )
- if err.number=0 then
- 'wscript.echo "Le compte "+compte+" a ete ajoute au groupe "+groupe
- Group.Add(objUser.ADspath)
- Group.SetInfo
- end if
- on error goto 0
- else
- 'si l'user existe déjà
- On Error Resume Next
- objUser.SetPassword "@"& password
- if err.number <>0 then
- objUser.Put "userFlags", objPasswordExpirationFlag
- 'wscript.echo "Mot de passe redefini."
- objUser.SetInfo
- end if
- on error goto 0
- on error resume next
- Set Group = GetObject("WinNT://" + Cstr(nom) + "/Administrateurs,group" )
- if err.number = 0 then
- Group.Add(objUser.ADspath)
- Group.SetInfo
- end if
- on error goto 0
- end if
- on error goto 0
- end if
- wscript.echo "End."
|
|