0Script batch pour renommer le PC en fonction du nom DHCP réservé

J'utilise WDS sur un serveur autonome pour configurer de nouveaux PC et de réimager PC quand ils ont fini par être mutilés de manière irréparable. Avec un bon nombre de PC dans ma propre maison, il est utile de les réimager occasionnellement lors de l'échange ou de la mise à niveau du matériel. La plupart de ce processus est maintenant automatisé par un fichier unattend.xml, mais une étape que le processus sans surveillance ne semble pas prendre en charge est de renommer PC retour à leur nom d'origine.

Tout mon PC ont des réservations DHCP statiques avec leur nom d'hôte correct (qui est également enregistré dans DNS) donc j'ai pensé qu'il devait y avoir un moyen d'extraire ces informations et de les utiliser pour les renommer. Après avoir beaucoup bidouillé, j'ai produit un script batch qui le fera (lorsqu'il est exécuté en tant qu'administrateur).

Collez simplement le code suivant dans un fichier .cmd et exécutez-le dans le cadre de votre processus sans surveillance (je décris le mien ci-dessous)

@Écho off
définir ip_address_string="Adresse IPv4"
POUR /F "usebackq" %%je dans (`nom d'hôte`) @Écho off
définir ip_address_string= "usebackq jetons=2 delims=:" %%f dans (`ipconfig ^| findstr /c:%ip_address_string%`) fais (
    pour /f "usebackq jetons=2 delims=:" %%Gin (`nslookup %%f ^| findstr /c:Nom`) fais (
        pour /F "jetons=1 delims=." %%un dans ("%%g") fais (
            pour /F "jetons=1 delims= " %%poubelle ("%%une") fais (
                WMIC ComputerSystem où Nom="%mavar%" appeler Renommer le nom ="%%b"
                aller à :eof
            )
        )
    )
)

J'appelle mon script depuis le <FirstLogonCommands> section de ImageUnattend.xml.

<Commande synchrone wcm:action="ajouter">
  <Ordre>5</Ordre>
  <La description>Renommer le système</La description>
  <Ligne de commande>c:\extraselevate -c c:\extrasrenommer-pc-de-dns.cmd</Ligne de commande>
</Commande Synchrone>

Pour l'exécuter en tant qu'administrateur, j'utilise un petit utilitaire (appelé elevate.exe) ça fait ça (les commandes exécutées lors de l'installation peuvent s'élever sans afficher d'invite!). Vous pouvez l'obtenir de c'est source d'origine

La dernière pièce du puzzle pour ma configuration est que je modifie l'image d'installation de Windows pour inclure un fichier exe et un petit script powershell - ceux-ci permettent la copie de tous les autres installateurs du réseau. Le fichier exe est 'flux’ qui est un sysinternals (fait maintenant partie de Microsoft) utilitaire pour supprimer l'avertissement "Ce fichier provient d'Internet êtes-vous sûr de vouloir l'exécuter".

J'ai aussi le script suivant sous forme de fichier .ps1

copy-item -Chemin \wds-serverRemInstCustom*.* -Destination C:\Suppléments

Mon premier 4 Les commandes de connexion sont alors les suivantes…

<Commande synchrone wcm:action="ajouter">
  <Ordre>1</Ordre>
  <La description>Pas de veille pendant la configuration</La description>
  <Ligne de commande>powercfg -change standby-timeout-ac 0</Ligne de commande>
</Commande Synchrone>
<Commande synchrone wcm:action="ajouter">
  <Ordre>2</Ordre>
  <La description>Ajouter des informations d'identification pour accéder au serveur via le réseau</La description>
  <Ligne de commande>cmdkey /ajouter:serveur-wds /utilisateur:serveur-wdsadministrateur /pass:mot de passe123</Ligne de commande>
</Commande Synchrone>
<Commande synchrone wcm:action="ajouter">
  <Ordre>3</Ordre>
  <La description>Copiez les scripts et les applications du réseau vers le dossier des extras</La description>
  <Ligne de commande>C:\WindowsSystem32WindowsPowerShellv1.0powershell.exe -windowstyle hidden -ExecutionPolicy ByPass -File C:\Suppléments  copyapps.ps1</Ligne de commande>
</Commande Synchrone>
<Commande synchrone wcm:action="ajouter">
  <Ordre>4</Ordre>
  <La description>Supprimer l'avertissement Internet des applications copiées</La description>
  <Ligne de commande>C:\Extras  Streams64.exe -d -d -nobanner C:\Suppléments*.* /accepteula</Ligne de commande>
</Commande Synchrone>

Leave a Reply