Powershell #02 | Sconfig, et script utilisateurs

Powershell #02 | Sconfig, et script utilisateurs

31 août 2019 0 Par Mairien Anthony

Second article de la fameuse série sur le Powershell (et accessoirement sur l’utilisation d’un serveur Windows en mode Core). Aujourd’hui nous verrons comment créer un petit script relié à un classeur permettant de créer des dizaines d’utilisateurs AD d’un seul coup et comment utiliser le menu Sconfig !

Bien, entrons donc directement dans le vif du sujet ! Nous allons commencer par le plus simple, en découvrant l’utilitaire Sconfig, qui n’est rien d’autre qu’un menu Powershell interactif permettant de renommer son hôte, changer la timezone, vérifier l’état de Windows Update, vérifier sa licence… comment ça nous aurions pu l’utiliser déjà dans le précédent article ? Sûrement, mais ça n’en aurait été que moins drôle :p

1) Le menu interactif, Sconfig

Avant de pouvoir utiliser cet utilitaire, il vous faudra réaliser une rapide manipulation, que j’ai découvert à mon insu ; en effet, comme ce sera le cas pour vous (je présume), vous allez/avez installé votre serveur en langue de molière, et un soucis se pose alors: si vous effectuez la commande sconfig Powershell ne trouvera simplement pas l’utilitaire…

Et pour cause, ce dernier se trouve par défaut dans le dossier C:\Windows\System32\fr-FR\. Si l’on souhaite donc pouvoir exécuter cet utilitaire, il nous faudra le copier dans le dossier en-US :

Ensuite, même en se plaçant à la racine du disque (cd C:\) nous pourrons exécuter la commande sconfig !

*J’avoue ne pas réellement connaître la raison de ce bug, mais d’autres personnes semblent l’avoir rencontré. Je ne sais pas non plus si il est fixé (sûrement?)

Enfin soit, voici le dit menu :

Comme vous pouvez le voir, nous pouvons choisir les différentes options et donc configurer notre hôte sans « réellement » avoir recours à des commandes Powershell qui semblerait un peu complexes. Cela dit, il est toujours utile de connaître ces fameuses commandes, d’où la nécessité de vous en avoir parlé lors de l’article précédent… partez du principe que si vous souhaitez installer un serveur en mode Core, c’est que la ligne de commande nous effraie pas et que vous êtes réellement prêt à rédiger quelques commandes assez « complexes ».

Voici un aperçu pour la gestion du réseau, je ne vais pas m’étendre d’avantage tant la prise en main est facile :

2) Script utilisateurs Active Directory via tableur et mise à jour de Powershell

Cela pourrait s’avéré fort complexe de prime abord, mais il n’en est rien (surtout si vous vous contentez de reprendre mon script sans lire les explications, héhé). Concrètement, nous allons procéder comme suit :

  • Créer un fichier Excel/Calc reprenant plusieurs utilisateurs avec quelques informations à leurs propos ;
  • Créer un script Powershell qui ira chercher les dites informations dans ce fichier, pour les extraire et exécuter des commandes en les prenant en compte ;
  • Prendre un café avec le temps que nous aurons économisé ;

Mais avant de réaliser tout cela… nous allons devoir mettre à jour notre Powershell. Et oui. Comme je l’avais dit en introduction dans le premier article, Powershell est actuellement en version 6, hors sur notre Windows Server 2012, nous sommes bien loin en arrière…

Et oui… nous sommes en version 3 ! Pour le moment, nous allons simplement le mettre à jour en version 5.1, pour avoir accès à quelques cmdlets ou modules supplémentaires, comme wget ou encore Expand-Archive qui permettra de dézipper notre archive justement.

Pour cela, il nous suffit de télécharger l’upgrade au format .msu et de l’installer de manière classique (vous pouvez la télécharger directement ici ) :

Un redémarrage est donc requis (comme souvent sur Windows me direz-vous), puis nous pouvons re-vérifier la version actuelle :

Voilà qui est mieux !

A présent on peut utiliser la fameuse commande Expand-Archive puis se rendre dans le dossier contenu dans cette dernière :

Bien… désormais nous pouvons télécharger le script et se rendre dans son répertoire, comme sur la capture d’écran ci-dessus. Voici les commandes (incroyables !) à rentrer :

Oui, nous devons faire deux fois la commande cd car le dossier extrait par l’archive porte le même nom que le dossier à l’intérieur de celle-ci… m’enfin soit, une fois dans le dossier du script, nous allons pouvoir modifier notre fichier CSV.

D’ailleurs, le script est disponible juste ici, sur mon Github avec les différentes informations pour l’installer : https://github.com/IT-Anthony/Script-Users-AD

Bien, ici je vais donc me contenter d’utiliser le tableau CSV par défaut, et il va donc me créer mes 3 utilisateurs. Comme dit dans le fichier README, modifiez bien la valeur « UserPrincipalName » avec votre nom de domaine.

Bien, nous allons juste décrire rapidement le script, histoire de ne pas simplement faire du copier/coller et car c’est toujours important de savoir ce que l’on va exécuter sur notre serveur… :

  • En premier lieu on utiliser le module Import-csv sur notre fichier tableur pour en faire une variable au nom de $CalcAD ;
  • Ensuite, on créer une simple boucle qui va, pour chaque entrée $User dans notre tableau (chaque colonne donc) effectuer une série
    d’actions ;
    • Prendre le username ;
    • Prendre le mot de passe (que l’on chiffre par la suite) ;
    • Prendre le prénom ;
    • Prendre le nom ;
    • Prendre le chemin où sera stocké notre objet ;
  • Ensuite, si en reprenant le nom d’utilisateur SAM on obtient une occurrence dans notre AD, alors on afficher un message sous forme de Warning ;
  • Sinon, si l’utilisateur n’est pas encore présent dans l’AD, on utilise la commande New-ADUser en utilisant les différents paramètres setupés en début ;

Comme quoi, ce n’est pas « si » compliqué que ça en réalité ! Et enfin la dernière étape (promis, vous allez pouvoir l’exécuter, ce fameux script…) est de setup la Policy concernant l’exécution de scripts Powershell sur le système. En effet, par défaut, Windows va bloquer purement et simplement leur exécution. Il existe quelques modes différents :

  • Restricted : Valeur par défaut, empêche l’exécution de scripts.
  • AllSigned : Requiert la signature numérique par un éditeur de l’ensemble des scripts, y compris ceux que vous créez en local sur la machine.
  • RemoteSigned : Requiert la signature numérique par un éditeur des scripts téléchargés à partir d’internet.
  • Unrestricted : Exécute tous les scripts, mais vous invite à autoriser l’exécution des scripts non signés téléchargés via internet.
  • Bypass : Pas de blocage, ni d’avertissements, tout sera exécuté.

Il existe aussi le type Undefined mais nous n’en parlerons pas ici. Bien, ici étant donné que nous sommes dans un LAB, nous allons choisir le mode Unrestricted et l’activer comme suit :

Pour exécuter le script, il nous suffit de faire la commande suivante :

Une fois le script effectué, vous n’aurez aucun message étant donné que vous n’aurez aucune erreur 😉

Mais si nous relançons le script :

On peut bien apercevoir nos messages de Warning.

Et bien voilà qui clôture déjà ce second article ! Nous aurons donc vu comment utiliser le menu Sconfig, comment mettre à jour notre Powershell, et comment créer/éxécuter un petit script qui peut être ma foi bien
pratique !

Dans le prochain article nous nous pencherons sur l’installation d’un Windows Server 2016 en mode Core, qui est légèrement différente de celle d’un 2012 R2, et qui sait, nous verrons éventuellement comment configurer un serveur DHCP voir plus ?