Se connecter / S'enregistrer
Votre question

[AD] Script pour créer des profils itinérants

Tags :
  • Serveur
  • Internet
Dernière réponse : dans Internet
28 Décembre 2007 18:52:18

Bonjour à tous,
savez-vous où je pourrai trouver un ou plusieurs scripts qui me permettrait de créer des profils itinérants pour tous les utilisateurs catalogués dans mon AD ?
Ainsi, qu'un lecteur réseau partagé sur le serveur ?

Pour mieux vous expliquer, je voudrai faire exactement la même chose que cette video : http://tosweb.free.fr/Configuration%20Profil%20Itin%e9rant.wmv

Mais tout cela en utilisant un script que je placerai sur le serveur.
Cependant, je ne connais pas du tout les lignes de commandes à mettre dans le fichier .bat

merci pour votre aide.

Autres pages sur : script creer profils itinerants

28 Décembre 2007 19:18:46

j'avai fait un script en VBS il y a quelques années qui fait à peu près ça, je te le passe tel quel, il faut le modifier un peu :
  1. On Error Resume Next
  2.  
  3. OUdepart = InputBox("Entrez l'UO de départ, elle doit exister !!!", "UO de départ","MonOU")
  4. OUacreer = InputBox("Entrez l'UO à créer ou à utiliser.", "UO pour les comptes","UO_Temporaire")
  5. gpacreer = InputBox("Entrez le nom du groupe à créer ou à utiliser", "Groupe","Groupe_temporaire")
  6. listedecompte = InputBox("Entrez le chemin de la liste des comptes.", "Fichier de comptes","liste.txt")
  7. typeprofil = InputBox("Entrez le type du profil : 1 pour itinérant.", "Profil","0")
  8. if TypeProfil = 1 then
  9. serveur = InputBox("Chemin des profils.", "Chemin","\\serveur\profils$\")
  10. End If
  11. '=========================================================
  12.  
  13.  
  14. '=========================================================
  15. 'Connexion au domaine
  16. '=========================================================
  17. Set racineAD = GetObject("LDAP://rootDSE")
  18.  
  19. '=========================================================
  20. 'On entre dans l'UO de base
  21. '=========================================================
  22. Set UOdebase = GetObject("LDAP://" & racineAD.Get("defaultNamingContext"))
  23.  
  24. '=========================================================
  25. 'On entre dans l'UO de départ
  26. '=========================================================
  27. Set UO = UOdebase.GetObject("organizationalUnit","ou=" & OUdepart)
  28.  
  29. if(Err.Number <> 0)then
  30. wscript.echo "L'UO [" & OUdepart & "] ne semble pas exister, fin du script."
  31. Err.Clear
  32. wscript.quit
  33. end if
  34.  
  35. '=========================================================
  36. 'On créer l'UO
  37. '=========================================================
  38. if OUacreer = "" then
  39. Set uoacreer = UO
  40. uoacreer.SetInfo
  41. end if
  42.  
  43. if OUacreer <> "" then
  44. Set uoacreer = UO.Create("organizationalUnit", "ou=" & OUacreer)
  45. uoacreer.SetInfo
  46. end if
  47.  
  48. if(Err.Number <> 0)then
  49. wscript.echo "Erreur lors de la création de l'UO [" & OUacreer & "], l'objet semble déjà exister."
  50. Err.Clear
  51. wscript.quit
  52. end if
  53.  
  54. '=========================================================
  55. 'Création du groupe
  56. '=========================================================
  57.  
  58. ADS_GROUP_TYPE_GLOBAL_GROUP = &h2
  59. ADS_GROUP_TYPE_LOCAL_GROUP = &h4
  60. ADS_GROUP_TYPE_UNIVERSAL_GROUP = &h8
  61. ADS_GROUP_TYPE_SECURITY_ENABLED = &h80000000
  62.  
  63. Set Groupe = uoacreer.Create("group", "cn=" & GPacreer)
  64. Groupe.Put "sAMAccountName", GPacreer
  65. Groupe.Put "groupType", ADS_GROUP_TYPE_GLOBAL_GROUP Or _
  66. ADS_GROUP_TYPE_SECURITY_ENABLED
  67. Groupe.SetInfo
  68. if(Err.Number <> 0)then
  69. wscript.echo "Erreur lors de la création du groupe [" & GPacreer & "]."
  70. Err.Clear
  71. wscript.quit
  72. end if
  73. '=========================================================
  74. 'Création des utilisateurs
  75. '=========================================================
  76.  
  77. '=========================================================
  78. 'Déclaration des variables
  79. '=========================================================
  80. Const avant = 1, defaut = -2, vrai = -1, faux = 0
  81. Dim ObjetFichier, Fichier, Chaine
  82. Set ObjetFichier = CreateObject("Scripting.FileSystemObject")
  83. Set Fichier = ObjetFichier.GetFile(listedecompte)
  84. Set Chaine = Fichier.OpenAsTextStream(avant, defaut)
  85. '=========================================================
  86. 'Fin déclaration
  87. '=========================================================
  88.  
  89.  
  90. '=========================================================
  91. 'On lit les lignes du fichier
  92. '=========================================================
  93. do until Chaine.AtEndOfStream
  94. login = Chaine.ReadLine
  95.  
  96. '=========================================================
  97. 'On crée l'utilisateur
  98. '=========================================================
  99. Set Utilisateur = uoacreer.Create("user", "cn=" & login)
  100. Utilisateur.Put "sAMAccountName", login
  101. Utilisateur.SetInfo
  102.  
  103. if(Err.Number <> 0)then
  104. wscript.echo "Erreur lors de la création du compte [" & login & "], il existe probablement déjà."
  105. End if
  106. '=========================================================
  107. 'S'il n'y a pas eu d'erreur, on applique les propriétés du compte
  108. '=========================================================
  109. if(Err.Number = 0)then
  110. Utilisateur.AccountDisabled = True
  111. Utilisateur.SetInfo
  112. Utilisateur.Put "pwdLastSet", 0
  113. Utilisateur.SetInfo
  114. '=========================================================
  115. 'Cas d'un utilisateur itinérant
  116. '=========================================================
  117. if TypeProfil = 1 then
  118. Utilisateur.Profile = serveur & login
  119. Utilisateur.SetInfo
  120. End If
  121. End If
  122. Err.Clear
  123. loop
  124. Chaine.Close
  125. MsgBox "Opération terminée !"


le fichier txt à mettre en entrée est simplement une liste de login
je ne gère pas les mot de passe
les comptes sont créés désactivés
28 Décembre 2007 20:54:58

OK merci ;) 
Et j'ai juste a modifier les lignes que je veux, et renommer le fichier texte en .bat...c'est bien ca ?
Contenus similaires
28 Décembre 2007 21:16:56

oui et non
tu modifie ce que tu veux
mais il n'y a pas de .bat ici

ce script est en VBS (.vbs), il doit être exécuté depuis une machine du domaine avec les droits administrateur

pour fonctionner du dois créer un .txt avec la liste des login à créer

sans rien modifier, il ne fait pas ce que tu veux, mais il contient tout ce dont tu as besoin pour en faire un qui colle parfaitement à ce que tu veux faire
28 Décembre 2007 23:23:11

ok, donc ca n'a rien a voir avec ma question.
Moi je veux faire un script en .bat

merci qd même :) 
29 Décembre 2007 00:22:19

?????? et ça change quoi, si ce n'est qu'avec un ".bat" tu ne pourras par faire la moitié de ce que tu veux ?

c'est l'extension qui te gène ?

n'importe quoi...
++
29 Décembre 2007 11:12:24

maith a dit :
?????? et ça change quoi, si ce n'est qu'avec un ".bat" tu ne pourras par faire la moitié de ce que tu veux ?

c'est l'extension qui te gène ?

n'importe quoi...
++


salut,
non ce n'est pas l'extension qui me dérange.
Seulement, ma prof d'info m'a dit d'utiliser un script avec un fichier en .bat, c'est pour cela que je veux faire un script batch.
La création de l'UO et de l'utilisateur, je vais la faire à la main.
Je veux juste un bout de script que je place dans le dossier des scripts et qui crée un profil itinerant pour l'utilisateur que je rentre dans l'AD... :ange: 
Comme sur la video...
29 Décembre 2007 20:40:46

Ok merci pour ce lien.
Perso j'utilise W2KServer, est-ce que les commandes sont identiques?
Quelle est la commande qui permet de spécifier le chemin du profil itinerant de l'utilisateur sur le serveur dans le script ?
Autres petite question :ange:  , sous quelle extension je dois enregistrer le fichier ?

Merci pour ton aide :hello: 
29 Décembre 2007 21:04:33

pour le chemin du profile
dans mon script c'est géré, si tu veux utiliser les commandes du site, c'est écrit sur le site
  1. -hmdir HomeDirectory
  2. Specifies the home directory location of the user you want to add. If HomeDirectory is given as a Universal Naming Convention (UNC) path, then you must specify a drive letter to be mapped to this path using the -hmdrv parameter.
  3. -hmdrv DriveLetter :
  4. Specifies the home directory drive letter (for example, E:) of the user you want to add..
  5. -profile ProfilePath
  6. Specifies the profile path of the user you want to add.


pour les extensions
si tu parle de mon script, c'est .vbs
si tu parle des commandes du site demi-Kr0 $oft, dans un fichier .bat
29 Décembre 2007 21:12:43

maith a dit :
pour les extensions
si tu parle de mon script, c'est .vbs
si tu parle des commandes du site demi-Kr0 $oft, dans un fichier .bat


Je parlais du site de technet2
c'est quoi le site demi-Kr0 $oft ?

Est-ce que la syntaxe est la même si j'enregistre le fichier en .bat à la place de .vbs ?
29 Décembre 2007 21:21:34

demi-Kr0 $oft--->cherche un peu :p 

pour le reste, j'ai répondu
30 Décembre 2007 13:46:14

Citation :
demi-Kr0 $oft--->cherche un peu :p 


Ok lol j'ai compris. :D 
Hier j'avais un peu la tête ds le c** :sleep: 

Citation :
pour le reste, j'ai répondu


je vais essayer de créer un script avec le lien demi-Kr0 $oft que tu m'a donné et je te tiens au courant.

@++ merci
30 Décembre 2007 14:28:29

kikou
voici donc le script que j'ai réalisé en fouillant un peu dans toutes les docs que j'ai trouvé sur google

  1. dsadd user %USERNAME% [-hmdir \\serveur\profils\%USERNAME%]
  2. NET USE * /DELETE /YES
  3. NET USE H: \\serveur\profils\%USERNAME% /PERSISTENT:NO


Qu'en penses-tu ?
30 Décembre 2007 23:22:19

un chti UP :p 
31 Décembre 2007 00:21:12

quand c'est entre [] c'est pour dire que c'est un paramètre optionnel, mais il ne faut pas les utiliser dans le code

le net use * /delete c'est un peu violent, il faut que tu sois certain que tes utilisateurs n'aient pas d'autres lecteurs mappés

mais le plus important, c'est ton %username% qu'il faut déclarer quelque part

tel quel (en corrigeant les []), ton script va créer un utilisateur qui porte le nom de l'utilisateur depuis lequel il va être lancé
et comme tu ne peux le lancer que depuis le contrôleur de domaine en administrateur, tu vas tenter de créer un compte nommé administrateur (donc erreur)

en batch il faut aussi doubler les % autour des variables

tu confonds les commandes d'administrations et de login
la création d'un compte ne doit être exécutées que par l'admin, une seule fois, le mappages des lecteurs réseaux doit au contraire être lancé à chaque ouverture de session->2 scripts distincts

et pour finir, tu ne souhaite pas juste créer 1 compte, mais plusieurs, il faut donc une boucle autour du code suivant
  1. set compte=toto
  2. dsadd user %%compte%% -hmdir \\serveur\profils\%%compte%%
31 Décembre 2007 18:00:28

Citation :
quand c'est entre [] c'est pour dire que c'est un paramètre optionnel, mais il ne faut pas les utiliser dans le code


oki [:ahm86funky:12]

Citation :
tu confonds les commandes d'administrations et de login
la création d'un compte ne doit être exécutées que par l'admin, une seule fois, le mappages des lecteurs réseaux doit au contraire être lancé à chaque ouverture de session->2 scripts distincts


D'accord

Citation :
et pour finir, tu ne souhaite pas juste créer 1 compte, mais plusieurs, il faut donc une boucle autour du code suivant
  1. set compte=toto
  2. dsadd user %%compte%% -hmdir \\serveur\profils\%%compte%%


Pour bien comprendre. En fait, au préalable je crée manuellement l'utilisateur dans l'AD.
Ensuite je crée son profil itinerant et son lecteur réseau via un script.
Donc, je pense (mais je ne suis pas du tout sûr) que dans le code que tu m'a présenté ci-dessus, je ne dois garder que le -hmdir \\serveur\profils\%%compte%% puisque l'utilisateur sera deja créé dans l'Active Directory.
2 Janvier 2008 11:25:23

tu créé l'utilisateur avec dsadd (ou manuellement si tu n'en as pas beaucoup à créer), si tu utilise bien les options, il sera directement de type itinérant

puis tu créés les scripts de login qui montent les lecteurs réseaux
2 Janvier 2008 12:17:28

Salut et bonne année.
En fait, la commande à passer n'est pas dsadd mais dsmod car je ne veux pas créer un user mais modifier ses attributs. :hello: 
2 Janvier 2008 16:10:48

désolé, je n'avais pas fait gaffe
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS