Atelier PHP + MS-DOS :
administrer les utilisateurs
Réponse AJAX

Objectif...

Créer notre propre interface en PHP pour faciliter l'administration de la machine, et notamment la gestion des utilisateurs.

Gestion des utilisateurs (NET USER)

Rappel pour... Appeler une commande MS-DOS depuis PHP

Vous aurez essentiellement besoin des fonctions exec et shell_exec.

Toutes les autres fonctions PHP relatives à l'exécution d'un programme externe sont disponibles ici : http://fr.php.net/manual/fr/book.exec.php

Affichage des utilisateurs existants

Faites en sorte que votre code PHP récupère la liste des utilisateurs existants grâce à la commande MS-DOS NET USER. Affichez les utilisateurs dans l'interface.

Vous devez décomposer précisément chaque nom grâce aux fonctions explode et substr, ou de façon plus élégante grâce aux expressions régulières.

Collez ici votre code PHP :

Votre réponse n°1

Création d'un nouvel utilisateur

Ajoutez une zone de texte (dans un formulaire) dans laquelle on peut saisir le login d'un utilisateur à créer. En validant le formulaire, un fichier de commande s'exécute pour créer l'utilisateur, son répertoire de travail, l'ajouter au groupe Administrateurs et configurer les droits du répertoire de travail.

Le fichier de commande permettant de réaliser ceci a été déjà réalisé dans le cours MS-DOS.

Coller ici le fichier de commande :

Votre réponse n°2

Coller ici le formulaire HTML :

Votre réponse n°3

Coller ici le script PHP :

Votre réponse n°4

Suppression d'un utilisateur existant

Faites en sorte qu'on puisse supprimer un utilisateur existant.

Si vous avez isolé les utilisateurs nom par nom : la suppression se fera en cliquant sur une croix rouge à coté du nom. Sinon, il faut saisir le nom de l'utilisateur à supprimer dans un formulaire.

L'action de suppression doit obligatoirement être accompagnée d'une demande de confirmation en Javascript.

En supprimant l'utilisateur, on supprime également son répertoire de travail.

Coller ici en les distinguant : le fichier de commande qui s'occupe de la suppression (si vous en avez fait un), la partie HTML (formulaire ou affichage du nom de l'utilisateur avec la croix de suppression), le code PHP :

Votre réponse n°5

Création d'un lot d'utilisateurs

Au lieu de créer les utilisateurs un par un, on souhaite pouvoir coller une liste d'utilisateurs dans un textarea et lancer la création d'un coup.

Rajouter le textarea dans le formulaire permettant de créer un utilisateur. On pourra au choix utiliser la zone de texte ou le textarea.

Coller ici les codes HTML et PHP correspondant :

Votre réponse n°6

Améliorer cet outil pour qu'il affiche le nombre d'utilisateurs réellement créés, et le nombre d'utilisateurs déjà existant dans le système.

Coller ici les codes correspondant :

Votre réponse n°7

Paramétrage de l'emplacement des répertoires de travail

Au lieu que le répertoire de travail de l'utilisateur soit tout le temps créé dans C:\users\..., on souhaite pouvoir paramétrer cet emplacement dans une zone de texte. Vous pouvez la mettre dans le formulaire déjà existant (celui où on saisit le(s) utilisateur(s) à créer).

Coller ici les codes correspondant (formulaire HTML et code PHP) :

Votre réponse n°8

Gestion des groupes (NET LOCALGROUP)

Affichage des groupes existants

Faites afficher dans votre interface la liste des groupes existant. Si vous avez déjà séparés les utilisateurs nom par nom, faites pareil pour les groupes.

Collez ici le code correspondant :

Votre réponse n°9

Amélioration : affichage des groupes et des utilisateurs qu'ils contiennent

Pour chaque groupe, affichez en plus la liste des utilisateurs qu'il contient. Si vous n'avez pas séparés les groupes par nom, vous devrez faire un formulaire où l'on peut saisir le nom du groupe dont on veut les utilisateurs.

Collez ici le code correspondant :

Votre réponse n°10

Outil de création et de suppression des groupes

Ajouter les formulaires (et éventuellement une croix) pour ajouter et supprimer un groupe.

La suppression devra obligatoirement s'accompagner d'une demande de confirmation en Javascript.

Collez ici le code correspondant :

Votre réponse n°11

Choix des groupes auxquels on associe le nouvel utilisateur

Au lieu de toujours ajouter l'utilisateur au groupe Administrateurs, on souhaite pouvoir choisir le/les groupe(s) au(x)quel(s) on le rajoute (par exemple le groupe Elèves).

A côté de chaque groupe, ajouter une case à cocher permettant de choisir les groupes dans lesquels on ajoute le(s) nouvel(nouvaux) utilisateur(s).

Collez ici le code correspondant :

Votre réponse n°12

Travail sur le contrôleur de domaine

En examinant l'aide des fonction NET USER, NET LOCALGROUP et NET GROUP, faite la liste de tout ce qu'il faudrait changer si on transposait cet outil sur un contrôleur de domaine (au lieu de gérer les compte locaux d'une machine).

Votre réponse n°13

Nom de l'ordinateur

En titre de la page, on souhaite afficher le nom de l'ordinateur sur lequel on travaille.

Sur Internet, cherchez la commande MS-DOS qui permet d'afficher le nom de l'ordinateur :

Votre réponse n°14

Ecrivez le code PHP qui appelle cette commande et affiche en titre de page : Administration des utilisateurs de nom de l'ordinateur.

Votre réponse n°15

Pour éviter d'exécuter cette commande à chaque ouverture de la page : stockez l'information dans une variable de session. Si la variable de session existe, on l'utilise au lieu de rappeler la commande. Collez ici le code correspondant..

Votre réponse n°16

Lecteurs réseaux (NET USE)

Grâce à la commande NET USE, affichez dans votre interface la liste des lecteurs réseaux auxquels votre ordinateur est connecté.

Votre réponse n°17

Ajoutez un formulaire qui permet d'ajouter un lecteur réseau (en demandant la lettre de lecteur, le chemin, le nom d'utilisateur et le mot de passe).

Votre réponse n°18

Ajoutez un formulaire (ou une croix) qui permet de supprimer un lecteur réseau. N'oubliez pas la demande de confirmation en Javascript.

Votre réponse n°19

Adaptation et tests pour l'Active Directory de Windows 2003/2008

Dans une machine virtuelle, installez Windows Server 2003 ou 2008.

Dans votre interface, ajouter une case à cocher qui permet de dire si on travail sur les groupes locaux ou sur le contrôleur de domaine.

Dupliquez tous les fichiers de commandes relatifs à la gestion des utilisateurs et des groupes, adaptez-les pour qu'ils puissent être exécutés sur un contrôleur de domaine.