none
Modifier nom du PC dans la phase de sysprep via powershell RRS feed

  • Question

  • Bonjour,

    Je suis en train de construire un master sous W10 LTSB 2016.

    J'ai créé un fichier de réponse unattend.xml où j'insère un certain nombre de tâches qui fonctionnent toutes sauf celle où je souhaite renommer le PC.

    Pour renommer le PC j'utilise le script PowerShell suivant :

    $computerName = Get-WmiObject Win32_ComputerSystem 
    [System.Reflection.Assembly]::LoadWithPartialName('Microsoft.VisualBasic') | Out-Null 
    $name = [Microsoft.VisualBasic.Interaction]::InputBox("Enter Desired Computer Name ")
    $computername.rename("$name")

    Le script est appelé depuis le script batch suivant :

    C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe -noprofile -command "Set-ExecutionPolicy bypass LocalMachine"
    C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe powershell -file C:\Agents\RenommerPC.ps1

    J'insère le script batch dans la phase 4 Specialize de unattend.xml :

    Le script fonctionne très bien lorsque je l’exécute manuellement depuis une session Windows.

    Quand je l’exécute lors de la phase de sysprep j'ai le message d'erreur suivant :

    J'insère le nom du PC voulu, puis :

    J'ai ensuite testé avec le code vbs suivant :

    ' ***************************************************************************************************************
    ' Changer le nom de l'ordinateur
    ' ***************************************************************************************************************
    strComputer = "."
    
    ' Paramètres à saisir au clavier  ************************
    strNouveauNom = Inputbox ("Entrer le nouveau nom du PC : ")
    
    Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
     
    Set colComputers = objWMIService.ExecQuery ("Select * from Win32_ComputerSystem")
     
    For Each objComputer in colComputers
        err = objComputer.Rename(strNouveauNom)
    Next
    ' ***************************************************************************************************************
    

    Cela me demande bien le nom du PC lors du sysprep mais ne l'applique pas.

    Savez-vous comment je pourrais m'en sortir pour pouvoir spécifier un nom de PC lors du sysprep ?

    Merci beaucoup. 

    vendredi 21 décembre 2018 12:49

Toutes les réponses

  • Pour le moment la seule solution de contournement que j'ai trouvé c'est de faire une tâche planifiée à l'ouverture de la session. 

    C'est pas top, mais bon ...

    J'aimerais tout de même pouvoir exécuter ce script avant l'ouverture de session, dans la phase de sysprep. Si quelqu'un a une idée, je suis preneur ;) 

    Merci 

    samedi 22 décembre 2018 09:13
  • Bonjour Momominta,

    J'avais pu lire ce sujet lors de mes recherches. Mais cela ne me convenait pas car je souhaitais pouvoir renommer le PC lors de la phase de sysprep en configurant les exécutions de scripts proposés dans la partie specialize par exemple. 

    Les scripts s’exécutent bien mais ne modifie pas le nom du PC. J'ai essayé avec des scripts en vbs et ps1. En vbs  je n'ai pas de message d'erreur, en PS1 j'obtiens les erreurs indiqués dans mon premier message de ce thread. 

    Je me suis donc résout à exécuter ces scripts après l'ouverture de session. Je suis pas fan, mais c'est le seul moyen que j'ai pu trouver. 

    jeudi 27 décembre 2018 08:34
  • non je n'utilise pas ce code car j'ai besoin d'une msg box pour pouvoir inscrire le nom. 

    J'utilise le code suivant 

    $computerName = Get-WmiObject Win32_ComputerSystem 
    [System.Reflection.Assembly]::LoadWithPartialName('Microsoft.VisualBasic') | Out-Null 
    $name = [Microsoft.VisualBasic.Interaction]::InputBox("Enter Desired Computer Name ")
    $computername.rename("$name")

    jeudi 27 décembre 2018 09:48
  • Bonjour Momominta,

    Effectivement j'en ai fait cette conclusion également. 

    Ce que je trouve dommage avec ce mode de fonctionnement c'est qu'on ne peut plus personnaliser soit même le nom du PC pendant OOBE. Avec un outils tiers ça fonctionne mais lorsqu'on doit s'affranchir de cet outils c'est foutu.

    J'ai également remarqué un problème avec computername (qui n'a cependant rien avoir avec le problème d'origine) : si je ne met pas <ComputerName>*</ComputerName> ça bug pour la mise dans le domaine. Il faut absolument spécifier computername dans le fichier unattend.xml

    vendredi 28 décembre 2018 08:01
  • Bonjour Fabien

    >Avec un outils tiers ça fonctionne mais lorsqu'on doit s'affranchir de cet outils c'est foutu.

    Donc vous avez votre solution.


    Momominta

    Je ne dirais pas que la solution se trouve dans l'outils tiers puisque mon besoin doit s'affranchir de cet outils. 

    Bref je me suis débrouillé. Merci

    lundi 31 décembre 2018 10:36
  • Pour le moment la seule solution de contournement que j'ai trouvé c'est de faire une tâche planifiée à l'ouverture de la session. 

    Je me suis donc résout à exécuter ces scripts après l'ouverture de session. Je suis pas fan, mais c'est le seul moyen que j'ai pu trouver. 

    lundi 31 décembre 2018 14:40
  • Bonjour,

    Une solution qui peut être simple : Supprimer la ligne <ComputerName> ... </ComputerName> dans ton unattend

    cela aura pour effet de demander le nom du PC lors de l'installation.

    Autre solution qui peut allez encore plus vite si on connait c'est MDT, qui sait gérer ce genre de personnalisation et bien plus

    mercredi 2 janvier 2019 07:20
  • Bonjour,

    Une solution qui peut être simple : Supprimer la ligne <ComputerName> ... </ComputerName> dans ton unattend

    cela aura pour effet de demander le nom du PC lors de l'installation.

    Autre solution qui peut allez encore plus vite si on connait c'est MDT, qui sait gérer ce genre de personnalisation et bien plus

    Bonjour dwuibaille

    Merci pour votre message. J'ai déjà essayé de ne pas mettre cette ligne. D'une part, cela génére un nom aléatoire et ne demande pas la saisie du nom du PC, d'autre part ça bug au niveau de l'ajout du Pc dans le domaine. A l'ouverture de session, le message lié à un problème de relation d'approbation, probablement du à un nom de PC trop long. En mettant une étoile <COMPUTERNAME>*</COMPUTERNAME> je n'ai plus de problème pour la mise dans le domaine

     si je ne met pas <ComputerName>*</ComputerName> ça bug pour la mise dans le domaine. Il faut absolument spécifier computername dans le fichier unattend.xml


    mercredi 2 janvier 2019 07:49