> Tech > Le travail commence

Le travail commence

Tech - Par Renaud ROSSET - Publié le 24 juin 2010
email

  Tout le travail de scripting préliminaire a maintenant été fait et la 4e partie de bulk-users.vbs peut commencer à  créer des comptes des utilisateurs. Les quelques premières lignes déclarent simplement les variables que le script utilise. Le script établit ensuite le chemin de base vers le serveur sur lequel le

Le travail commence

répertoire home de l’utilisateur sera créé. A noter que ce chemin connecte au share administratif C$.

  Le principal travail de ce script s’accomplit dans l’instruction Do…Loop, qui traite le jeu d’enregistrements une ligne à  la fois. Les six premières lignes de code dans la boucle extraient l’information sur le nouvel utilisateur du jeu d’enregistrements et la stockent dans des variables. (Bien que pas strictement nécessaire, cette étape facilite le travail sur l’information.) Notons que les noms de champs dans l’objet Recordset correspondent aux noms de colonnes de la feuille de calcul Excel. Ensuite, je crée un mot de passe pseudo-aléatoire en combinant les deux premiers caractères de l’ID du nouvel utilisateur, les minutes de l’horloge système, la date julienne (c’est-à dire un nombre de 1 à  365 indiquant le jour de l’année) et les secondes de l’horloge. On peut aussi créer un mot de passe tiré du nom de l’utilisateur, du numéro de sécurité sociale, ou de toute autre information. Les quelques lignes suivantes créent véritablement le compte utilisateur dans le domaine. La méthode Create requiert deux paramètres : le type de l’objet que l’on crée (un objet User, par exemple) et l’identifieur (l’ID de l’utilisateur, par exemple). La méthode renvoie une référence vers l’objet User nouvellement créé, que j’attribue à  la variable oUserAcct. Le fait de capturer cette référence dans une variable permet au script de définir immédiatement les propriétés du compte, y compris le mot de passe, le nom complet, la description, le répertoire home, et les autorisations RAS. Notons que le script comporte la vérification d’erreurs pour indiquer s’il y a eu un problème quand le script a essayé de créer le compte de l’utilisateur. Ainsi, si la feuille de calcul Excel contient un nom d’utilisateur qui existe déjà , le script rencontrera une erreur quand il essaiera de créer le nom d’utilisateur en double. Il affichera alors un message signalant l’erreur.

  Après avoir défini les propriétés des comptes, le script définit les autorisations RAS. A noter que la valeur 9 permet l’appel (dial-in), tandis que la valeur 1 le refuse. On peut examiner ces valeurs dans la d documentation ADSI, disponible à  http://msdn.microsoft.com/library/default.asp. (Naviguer vers Networking and Directory Services ; Active Directory, ADSI and Directory Services ; SDK Documentation ; Directory Services ; Active Directory Service Interfaces (ADSI).)

  Ensuite, la méthode SetInfo sauvegarde les propriétés du compte sur le domaine, puis le script obtient une référence fraîche vis-à -vis du compte utilisateur. Quand le compte est sauvegardé, le domaine génère un SID et définit d’autres informations internes (comme la date de création des attributs de sécurité initiaux du compte). Le fait d’obtenir une nouvelle référence vis-à -vis du compte donne au script l’accès à  cette information interne, nécessaire pour la prochaine étape majeure : ajouter l’utilisateur aux groupes appropriés. La partie 4A du script couvre cette étape. Avant de passer à  la partie 4A, j’utilise la méthode Write de l’objet TextStream pour sauvegarder l’ID et le mot de passe du l’utilisateur dans le fichier texte. Ecrire des mots de passe dans un fichier est bien entendu un risque de sécurité potentiel, et c’est pourquoi il vaut mieux créer des mots de passe non aléatoires qu’on n’a pas besoin d’écrire dans un fichier. Si vous êtes certain que le fichier des mots de passe ne sera pas vulnérable, cette méthode est excellente pour créer des mots de passe pour de nouveaux utilisateurs.

  Comme la feuille de calcul Excel peut contenir une liste avec virgules de séparation des groupes auxquels l’utilisateur doit appartenir, j’ai utilisé la fonction Split de VBScript pour transformer cette liste en un tableau de chaînes (string array). La fonction Split recherche des virgules dans la chaîne sGroups et crée un tableau appelé sGroupList, dans lequel chaque élément du tableau est un nom de groupe. J’utilise ensuite une instruction For…Next pour passer en revue chaque élément du tableau.

  La fonction uBound indique au script le nombre d’éléments présents dans le tableau sGroupList afin que le script exécute la boucle autant de fois que nécessaire. Dans la boucle For…Next, j’utilise à  nouveau ADSI pour obtenir une référence vis-à -vis du groupe auquel je veux ajouter l’utilisateur. J’utilise la variable oGroup pour stocker la référence, puis la méthode Add pour ajouter l’utilisateur. La propriété AdsPath est un élément interne d’information que le domaine fournit quand le compte est sauvegardé. Après avoir ajouté l’utilisateur, il fournit la référence vis-à -vis du groupe en définissant la variable avec le mot-clé Nothing. Cette étape n’est pas strictement nécessaire, mais c’est une bonne pratique de scripting qui améliore aussi les performances.

  Quand l’utilisateur se trouve dans tous les groupes corrects, j’utilise à  nouveau l’objet FileSystemObject pour créer le répertoire home de l’utilisateur. Ce processus a lieu dans la partie 4B de bulk-users.vbs. Cette étape crée un nouveau dossier en utilisant la variable sHomePath et en ajoutant l’ID de l’utilisateur pour le nom de dossier final. (Il faut que le dossier C:\users existe déjà , sinon cette opération échouera.)

  La 5e partie du script fournit la référence vis-à -vis de l’objet User en préparation pour le prochain utilisateur dans le jeu d’enregistrements. La dernière ligne dans la structure Do…Loop déplace le pointeur du jeu d’enregistrements sur la ligne suivante afin que la boucle puisse travailler sur le prochain utilisateur. Si le pointeur du jeu d’enregistrements dépasse le dernier utilisateur, la propriété EOF (End of File) est mise à  True (vrai) et la boucle se termine.

  La 6e partie du script s’exécute après que la structure Do…Loop ait traité le dernier utilisateur. Cette partie ferme simplement la feuille de calcul Excel, ferme le fichier texte qui contient les nouveaux mots de passe, et affiche une boîte de dialogue indiquant la bonne fin du script. La figure 3 montre User Manager for Domains avec les nouveaux comptes d’utilisateurs en place.

Téléchargez cette ressource

Les mégatendances cybersécurité et cyber protection 2024

Les mégatendances cybersécurité et cyber protection 2024

L'évolution du paysage des menaces et les conséquences sur votre infrastructure, vos outils de contrôles de sécurité IT existants. EPP, XDR, EDR, IA, découvrez la synthèse des conseils et recommandations à appliquer dans votre organisation.

Tech - Par Renaud ROSSET - Publié le 24 juin 2010