• Note pour les visiteurs de Tutoriaux-Excalibur

    Vous trouvez Tutoriaux-Excalibur intéressant ?

    Nous espérons que vous avez trouvé les tutoriels sur Tutoriaux-Excalibur utiles et instructifs. Votre avis est très important pour nous !

    Si vous avez apprécié votre expérience, nous vous invitons à partager vos commentaires sur notre page Trustpilot.

    Cliquez ici pour partager votre expérience sur Trustpilot.

    Merci de votre soutien !

Automatisation installation Windows

  • Initiateur de la discussion Initiateur de la discussion DominiqueK
  • Date de début Date de début

DominiqueK

Dominique
Membre présenté
Membre
Salut tout le monde,
Je bute sur un problème. J'ai un serveur WDS qui me permet de déployer une image de Windows. J'ai un fichier texte avec la correspondance des adresses MAC de mes PC et leur nom. J'aurai souhaité que lors du déploiement d'une image sur un de ces PC, ce dernier se renomme automatiquement par rapport à ma liste d'adresses MAC.
Dans mon fichier ImageUnattend.xml, je voulais incorporer le renommage automatique en exécutant un script PowerShell qui fait le lien entre l'adresse MAC et le nom du PC. Mais ça foire à chaque fois, je me retrouve toujours avec une machine sans le bon nom.
Le fichier texte est du style :
aa:bb:cc:dd:ee:ff;nom_pc
11:22:33:44:55:66;nom_pc2

Mon script PS1 ressemble à ça :
$macAddressFile = "\\chemin_du_fichier\mac_to_name.txt"

# Lire chaque ligne du fichier texte
foreach ($line in Get-Content $macAddressFile) {
$mac, $hostname = $line.Split(";")

# Vérifier si l'adresse MAC correspond à celle de l'ordinateur actuel
if ((Get-WmiObject -Class Win32_NetworkAdapterConfiguration | Where-Object { $_.MACAddress -eq $mac }).MACAddress) {
# Renommer l'ordinateur
Rename-Computer -NewName $hostname -Force -Restart
break
}
}

Je pense que là où ça coince c'est dans mon fichier ImageUnattend.xml, j'ai placé la commande dans la rubrique <component name="Microsoft-Windows-Deployment">.
A moins qu'il y ait une autre solution plus simple?
Quelqu'un aurait une piste?
Merci.

Dominique
 
Voici quelques pistes pour résoudre votre problème :

Phase d'exécution du script
Le placement de votre commande dans le composant Microsoft-Windows-Deployment de votre fichier ImageUnattend.xml peut ne pas être approprié pour l'exécution de scripts de renommage. Le renommage de l'ordinateur doit être effectué dans une phase où les services réseau et la configuration système sont entièrement opérationnels (souvent pendant la phase specialize ou oobeSystem).
Suggestion :

Placez votre script dans la section <FirstLogonCommands> (ou <SetupCompleteCommands>) de l’unattend pour qu’il s’exécute lors du premier démarrage.

Vous pouvez également utiliser la phase specialize si vous souhaitez que le renommage soit effectué avant que l'utilisateur ne se connecte.

Accès aux fichiers et contexte d'exécution
Assurez-vous que le script a bien accès au fichier mac_to_name.txt au chemin spécifié (\\chemin_du_fichier\mac_to_name.txt) pendant le déploiement.
Conseils :

Vérifiez que le partage réseau est accessible en mode WinPE (si c’est le cas) ou en phase post-déploiement.
Si le script s’exécute dans un contexte restreint (par exemple en WinPE), le module PowerShell ou l’accès réseau peut ne pas être disponible.

Exécution du script PowerShell
Vérifiez que l’exécution des scripts PowerShell est autorisée (politique d’exécution). Dans votre environnement de déploiement, il peut être nécessaire d’ajouter une commande pour autoriser l’exécution (ex. : Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process).

Traitement de la correspondance MAC/nom

Quelques points à vérifier dans votre script PS1 :

Comparaison de l’adresse MAC :
La comparaison doit être faite avec la bonne casse et sans espaces superflus. Il peut être utile de normaliser la valeur récupérée par Get-WmiObject et celle du fichier (par exemple, en retirant les espaces et en convertissant en minuscules).

Code:
$mac = $mac.Trim().ToLower()

Code:
$mac = $mac.Trim().ToLower()

Code:
$currentMac = ($_."MACAddress" -replace "-", ":").ToLower()

(selon le format retourné par Get-WmiObject)

Renommage et redémarrage :
Le redémarrage immédiat avec Rename-Computer -Restart peut interrompre le script avant la fin de son exécution. Vérifiez si c’est vraiment ce que vous souhaitez. Une fois l’ordinateur renommé, le redémarrage va forcément arrêter le script, ce qui est normal s’il n’y a plus rien à faire après.

Autre approche possible
Si vous souhaitez éviter de lancer le script depuis l’unattend, vous pouvez envisager :

D’ajouter un script dans le profil de démarrage ou comme tâche planifiée qui s’exécute lors de la première connexion.
D’intégrer directement dans l’image un script de post-déploiement via un fichier de commandes (batch ou PowerShell) qui sera lancé automatiquement par le système.

Code:
<settings pass="oobeSystem">
  <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <FirstLogonCommands>
      <SynchronousCommand wcm:action="add">
        <CommandLine>powershell.exe -ExecutionPolicy Bypass -File "C:\Chemin\Vers\VotreScript.ps1"</CommandLine>
        <Order>1</Order>
        <Description>Renommage de l'ordinateur</Description>
      </SynchronousCommand>
    </FirstLogonCommands>
  </component>
</settings>

Note : Assurez-vous que votre script et le fichier texte sont présents sur l’ordinateur au moment de l’exécution (vous pouvez par exemple les copier via d’autres mécanismes de déploiement).

Résumé :

Vérifiez la phase d’exécution : utilisez une phase où le système est pleinement opérationnel (specialize ou oobeSystem).
Contrôlez l’accès aux ressources : le fichier texte doit être accessible.
Ajustez le script : assurez-vous que la comparaison de l’adresse MAC est robuste et que l’exécution du script n’est pas interrompue prématurément.
Testez en environnement de déploiement : réalisez quelques tests pour vérifier que tout fonctionne comme prévu.
En appliquant ces modifications, vous devriez obtenir le renommage automatique de vos PC lors du déploiement via WDS. Bonne chance !
 
Voici quelques pistes pour résoudre votre problème :

Phase d'exécution du script
Le placement de votre commande dans le composant Microsoft-Windows-Deployment de votre fichier ImageUnattend.xml peut ne pas être approprié pour l'exécution de scripts de renommage. Le renommage de l'ordinateur doit être effectué dans une phase où les services réseau et la configuration système sont entièrement opérationnels (souvent pendant la phase specialize ou oobeSystem).
Suggestion :

Placez votre script dans la section <FirstLogonCommands> (ou <SetupCompleteCommands>) de l’unattend pour qu’il s’exécute lors du premier démarrage.

Vous pouvez également utiliser la phase specialize si vous souhaitez que le renommage soit effectué avant que l'utilisateur ne se connecte.

Accès aux fichiers et contexte d'exécution
Assurez-vous que le script a bien accès au fichier mac_to_name.txt au chemin spécifié (\\chemin_du_fichier\mac_to_name.txt) pendant le déploiement.
Conseils :

Vérifiez que le partage réseau est accessible en mode WinPE (si c’est le cas) ou en phase post-déploiement.
Si le script s’exécute dans un contexte restreint (par exemple en WinPE), le module PowerShell ou l’accès réseau peut ne pas être disponible.

Exécution du script PowerShell
Vérifiez que l’exécution des scripts PowerShell est autorisée (politique d’exécution). Dans votre environnement de déploiement, il peut être nécessaire d’ajouter une commande pour autoriser l’exécution (ex. : Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process).

Traitement de la correspondance MAC/nom

Quelques points à vérifier dans votre script PS1 :

Comparaison de l’adresse MAC :
La comparaison doit être faite avec la bonne casse et sans espaces superflus. Il peut être utile de normaliser la valeur récupérée par Get-WmiObject et celle du fichier (par exemple, en retirant les espaces et en convertissant en minuscules).

Code:
$mac = $mac.Trim().ToLower()

Code:
$mac = $mac.Trim().ToLower()

Code:
$currentMac = ($_."MACAddress" -replace "-", ":").ToLower()

(selon le format retourné par Get-WmiObject)

Renommage et redémarrage :
Le redémarrage immédiat avec Rename-Computer -Restart peut interrompre le script avant la fin de son exécution. Vérifiez si c’est vraiment ce que vous souhaitez. Une fois l’ordinateur renommé, le redémarrage va forcément arrêter le script, ce qui est normal s’il n’y a plus rien à faire après.

Autre approche possible
Si vous souhaitez éviter de lancer le script depuis l’unattend, vous pouvez envisager :

D’ajouter un script dans le profil de démarrage ou comme tâche planifiée qui s’exécute lors de la première connexion.
D’intégrer directement dans l’image un script de post-déploiement via un fichier de commandes (batch ou PowerShell) qui sera lancé automatiquement par le système.

Code:
<settings pass="oobeSystem">
  <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <FirstLogonCommands>
      <SynchronousCommand wcm:action="add">
        <CommandLine>powershell.exe -ExecutionPolicy Bypass -File "C:\Chemin\Vers\VotreScript.ps1"</CommandLine>
        <Order>1</Order>
        <Description>Renommage de l'ordinateur</Description>
      </SynchronousCommand>
    </FirstLogonCommands>
  </component>
</settings>

Note : Assurez-vous que votre script et le fichier texte sont présents sur l’ordinateur au moment de l’exécution (vous pouvez par exemple les copier via d’autres mécanismes de déploiement).

Résumé :

Vérifiez la phase d’exécution : utilisez une phase où le système est pleinement opérationnel (specialize ou oobeSystem).
Contrôlez l’accès aux ressources : le fichier texte doit être accessible.
Ajustez le script : assurez-vous que la comparaison de l’adresse MAC est robuste et que l’exécution du script n’est pas interrompue prématurément.
Testez en environnement de déploiement : réalisez quelques tests pour vérifier que tout fonctionne comme prévu.
En appliquant ces modifications, vous devriez obtenir le renommage automatique de vos PC lors du déploiement via WDS. Bonne chance !
Merci pour toutes ces pistes. Je viens d'apporter des modifs et je lance un déploiement, y a plus qu'à attendre 1h30 que ça se finisse ;-)
Je reviendrais vous donner le résultat.

Encore merci.
 
Voici quelques pistes pour résoudre votre problème :

Phase d'exécution du script
Le placement de votre commande dans le composant Microsoft-Windows-Deployment de votre fichier ImageUnattend.xml peut ne pas être approprié pour l'exécution de scripts de renommage. Le renommage de l'ordinateur doit être effectué dans une phase où les services réseau et la configuration système sont entièrement opérationnels (souvent pendant la phase specialize ou oobeSystem).
Suggestion :

Placez votre script dans la section <FirstLogonCommands> (ou <SetupCompleteCommands>) de l’unattend pour qu’il s’exécute lors du premier démarrage.

Vous pouvez également utiliser la phase specialize si vous souhaitez que le renommage soit effectué avant que l'utilisateur ne se connecte.

Accès aux fichiers et contexte d'exécution
Assurez-vous que le script a bien accès au fichier mac_to_name.txt au chemin spécifié (\\chemin_du_fichier\mac_to_name.txt) pendant le déploiement.
Conseils :

Vérifiez que le partage réseau est accessible en mode WinPE (si c’est le cas) ou en phase post-déploiement.
Si le script s’exécute dans un contexte restreint (par exemple en WinPE), le module PowerShell ou l’accès réseau peut ne pas être disponible.

Exécution du script PowerShell
Vérifiez que l’exécution des scripts PowerShell est autorisée (politique d’exécution). Dans votre environnement de déploiement, il peut être nécessaire d’ajouter une commande pour autoriser l’exécution (ex. : Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process).

Traitement de la correspondance MAC/nom

Quelques points à vérifier dans votre script PS1 :

Comparaison de l’adresse MAC :
La comparaison doit être faite avec la bonne casse et sans espaces superflus. Il peut être utile de normaliser la valeur récupérée par Get-WmiObject et celle du fichier (par exemple, en retirant les espaces et en convertissant en minuscules).

Code:
$mac = $mac.Trim().ToLower()

Code:
$mac = $mac.Trim().ToLower()

Code:
$currentMac = ($_."MACAddress" -replace "-", ":").ToLower()

(selon le format retourné par Get-WmiObject)

Renommage et redémarrage :
Le redémarrage immédiat avec Rename-Computer -Restart peut interrompre le script avant la fin de son exécution. Vérifiez si c’est vraiment ce que vous souhaitez. Une fois l’ordinateur renommé, le redémarrage va forcément arrêter le script, ce qui est normal s’il n’y a plus rien à faire après.

Autre approche possible
Si vous souhaitez éviter de lancer le script depuis l’unattend, vous pouvez envisager :

D’ajouter un script dans le profil de démarrage ou comme tâche planifiée qui s’exécute lors de la première connexion.
D’intégrer directement dans l’image un script de post-déploiement via un fichier de commandes (batch ou PowerShell) qui sera lancé automatiquement par le système.

Code:
<settings pass="oobeSystem">
  <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <FirstLogonCommands>
      <SynchronousCommand wcm:action="add">
        <CommandLine>powershell.exe -ExecutionPolicy Bypass -File "C:\Chemin\Vers\VotreScript.ps1"</CommandLine>
        <Order>1</Order>
        <Description>Renommage de l'ordinateur</Description>
      </SynchronousCommand>
    </FirstLogonCommands>
  </component>
</settings>

Note : Assurez-vous que votre script et le fichier texte sont présents sur l’ordinateur au moment de l’exécution (vous pouvez par exemple les copier via d’autres mécanismes de déploiement).

Résumé :

Vérifiez la phase d’exécution : utilisez une phase où le système est pleinement opérationnel (specialize ou oobeSystem).
Contrôlez l’accès aux ressources : le fichier texte doit être accessible.
Ajustez le script : assurez-vous que la comparaison de l’adresse MAC est robuste et que l’exécution du script n’est pas interrompue prématurément.
Testez en environnement de déploiement : réalisez quelques tests pour vérifier que tout fonctionne comme prévu.
En appliquant ces modifications, vous devriez obtenir le renommage automatique de vos PC lors du déploiement via WDS. Bonne chance !
ben il n'a pas voulu. Je pense que c'est une histoire de droit d'accès aux fichiers se trouvant sur un autre serveur. Je pense que le plus simple est que j'intègre ces fichiers à mon image comme ça ils seront dispo sur la machine locale...
encore merci.
 
Bonjour Dominique
Quand tout fonctionne bien fais toi une image système avec Windows.
Tu pourras revenir dessus si un jour ça foire.Même si plus rien ne démarre.
 
Bonjour Dominique
Quand tout fonctionne bien fais toi une image système avec Windows.
Tu pourras revenir dessus si un jour ça foire.Même si plus rien ne démarre.
le seul truc qui me chiffonne si j'intègre mes fichiers à mon images (les adresses MAC et les noms des PC), c'est que le jour où j'ai des modifs de mon parc je ne pourrais pas facilement mettre à jour ces fichiers à moins de refaire une image! alors, je continue à chercher une solution en essayant d'intégrer le renommage à mon fichier unattend.xml. j'vais bien y arriver un jour!
 
le seul truc qui me chiffonne si j'intègre mes fichiers à mon images (les adresses MAC et les noms des PC), c'est que le jour où j'ai des modifs de mon parc je ne pourrais pas facilement mettre à jour ces fichiers à moins de refaire une image! alors, je continue à chercher une solution en essayant d'intégrer le renommage à mon fichier unattend.xml. j'vais bien y arriver un jour!
Fais des images fréquentes ça dure pas longtemps et tu reviens toujours dessus et si possible sur un disque dur externe.
Méfis toi du 11 il est vicieux!
Moi je suis sur un win10 craqué
Le menu démarrer du 7 grâce à un ancien ami qui a déserté ce forum.
Je ne dirais pas son nom mais depuis le temps mon Windows10 fonctionne à merveille à condition de ne faire aucune mise à jour.
 
Dernière édition:
Jean Luc, merci de rester dans le sujet, on parle de déploiement et non de sauvegarde, de restauration ou de version.
 

Campagne de dons

Dons pour T-E

Campagne de dons pour T-E
Objectif
300.00 $
Reçu
125.81 $
Cette collecte de dons se termine dans
0 heures, 0 minutes, 0 seconds
  41.9%

En ligne

Statistiques des forums

Discussions
18 250
Messages
29 550
Membres
356
Dernier inscrit
louisyoung044

Nouveaux membres

Retour
Haut Bas