lundi 3 mai 2021

Script de renommage réseau d’un PC par le biais de l’invite de commandes

 

Petit billet avant de sombrer dans les bras de Morphée pour présenter un petit script sans prétention. Il y a quelques jours, avec mon ami, je discutais du fait que je n’étais pas fan du fait qu’une fois l’installation faite de Windows 10, on se retrouve avec une machine dont le nom réseau est à coucher dehors (de forme DESKTOP-xxxxxxx). Il me disait que cela ne le dérangeait pas. Mais en ce qui me concerne, j’ai pas mal de machines, dont cinq branchées en permanence. Pour le fun, j’en ai mis d’autres en service dans le même temps et je me suis retrouvé avec un voisinage réseau peuplé de seize ordinateurs (et encore, faute de place, je n’ai pas mis tous les ordinateurs sous tension, j’aurais eu alors près de trente ordinateurs connectés) !

Il est certain que plus il y a de machines, plus cela facilite les choses que de les nommer correctement. J’ai toujours trouvé amusantes les personnes donnant des prénoms à leurs PC (Anatole, Barnabé, Camille, Damien…). En ce qui me concerne, je les nomme selon leurs références (Thinkpad-T42, Thinkpad-X201 par exemple et je remplace le trait d’union par un underscore – le « trait du bas », le « trait de la touche 8 » – pour mes machines sous Linux/*NIX – Thinkpad_T60, Thinkpad_X301). Et pour les PC assemblés, je reprends le nom du processeur (i3-2120, PentiumD_820). Plutôt efficace et rationnel.

J’ai toujours trouvé la procédure de renommage des PC rébarbative, avec des tas de clics à faire. Et je fais tellement de réglages que je me suis dit qu’il pourrait être sympa d’intégrer de quoi automatiser le renommage dans un de mes scripts.

Rien de très compliqué, un simple script en batch faisant appel à une fonction de PowerShell. Comme je suis particulièrement pointilleux sur l’apparence de ces scripts, je m’assure que les caractères apparaissent correctement. Voici à quoi ressemble le script en question :


@echo OFF
CHCP 28591 > nul
title Modification du nom réseau du PC

echo Modification du nom réseau du PC
echo (Le PC devra être redémarré une fois la modification effectuée).
echo -------------------------------

echo Le nom réseau actuel est l'ordinateur est %ComputerName%.
echo -------------------------------

:PROMPT
set /p ActiveComputerName="Nouveau nom de l'ordinateur (15 caractères au maximum) ? "
if not "%ActiveComputerName:~15%"=="" goto :PROMPT

PowerShell -Command "Rename-Computer -NewName %ActiveComputerName%" > nul
echo Le nom réseau de la machine a été changé... Réglage OK

set /p Choice=Redémarrer le PC (taper « O » ou « N ») ? %=%

if "%Choice%"=="O" goto :OUI
if "%Choice%"=="N" goto :NON

:OUI
echo Redémarrage du PC, enregistrer et fermer toutes les applications.
echo Appuyer sur une touche pour confirmer...
pause > nul
shutdown /r /t 0
goto :EOF

:NON
echo Le PC ne va pas être redémarré.
echo Un redémarrage ultérieur sera nécessaire pour appliquer la modification !
pause
cls
goto :EOF



Ce code devra être enregistré dans un fichier avec extension *.BAT (encodage ANSI) et devra être exécuté en tant qu’administrateur pour fonctionner. Le principe est assez simple à comprendre :
  • définition de la page de code (le code 28591, pour un affichage optimal dans l’invite de commandes de Windows 10) ;
  • modification du titre de la fenêtre (ce qui apparaît dans la barre de titre) ;
  • reprise du titre dans la fenêtre, avertissement concernant le redémarrage du PC à la fin du script) ;
  • une première section pour le renseignement du nom de la machine. Il est à noter que ces noms de machines ne peuvent dépasser les quinze caractères. Une fois le nom de la machine rentré (variable %ActiveComputerName%), le script vérifie sa longueur et redemande un nouveau nom s’il y a plus de quinze caractères ;
  • modification du nom de la machine (par l’entremise de la commande Rename-Computer -NewName %ActiveComputerName% de PowerShell) ;
  • une dernière section donne le choix de quitter le programme en redémarrant le PC ou sans le redémarrer. Si l’on choisit le redémarrage, alors la machine redémarre instantanément (grâce au commutateur /t 0 de la commande shutdown). Sans cette commande l’extinction du PC se fait dans la minute.

Aucun commentaire:

Enregistrer un commentaire