Configuration avancée de MDT 2013
Sommaire
- I. Présentation
- II. Un peu de théorie
- III. Étude des fichiers de configuration Bootstrap.ini et CustomSetting.ini
- IV. Aller plus loin avec CS.ini : Quelques Trucs et Astuces
- A. Ne pas créer la partition additionnelle d'amorçage
- B. Affecter des valeurs dynamiques aux variables MDT
- C. Activer les mises à jour Windows Update, mais bloquer des correctifs indésirables
- D. Masquer l'explorateur durant le déploiement
- E. Définir le service de surveillance des déploiements MDT (Monitoring)
- F. Ajouter des administrateurs locaux
- G. Activer la journalisation dynamique des déploiements
- Annexes - Clés d’installation des clients KMS
I. Présentation
Pour faire suite au tutoriel précédent sur vos débuts avec MDT 2013, je vous propose d'entrer un peu plus dans les détails de la configuration associée à cette solution de déploiement très flexible. Le but recherché étant de réduire au maximum les actions lors de l'installation.
Je ne vais pas dresser l'apologie de MDT, mais je suis intimement convaincu que derrière cet air de complexité, se cache un outil aux capacités presque sans limites et vos efforts pour l'appréhender seront certainement récompensés rapidement. Je reconnais que les premiers contacts avec MDT peuvent être déconcertants et on peut être découragé certains d'entre vous, mais je vous conseille de persévérer, car la communauté est toujours plus active, de jour en jour. En ce qui me concerne, depuis de nombreuses années, j'ai relégué le clonage et la multiplication des masters à de vieux souvenirs. Et avec MDT, cette époque est bien révolue, et je suis persuadé que vous n'aurez surtout plus l'envie d'y revenir…
Ce tutoriel a donc pour but de vous expliquer des concepts avancés afin de comprendre et maitriser la configuration des fichiers CustomSettings.ini et bootstrap.ini et introduire une éventuelle extension vers la base de données. Je reconnais que le sujet est plutôt vaste et qu'il existe d'autres angles d'approche, plus synthétiques, comme par exemple cet article ou un article TRÈS pointu comme celui-ci
Le plus délicat pour moi était donc de choisir la position du curseur de complexité que je souhaitais vous présenter. La marche de progression est peut-être un peu haute et veuillez donc m'excuser par avance pour ces choix arbitraires. J'espère que chaque lecteur y trouvera son compte, et à défaut de réponse, des pistes pour avancer dans ces investigations ou l'apprentissage de MDT.
II. Un peu de théorie
Une fois de plus, avant d'aborder le vif du sujet, il convient d'insister sur quelques points importants des mécanismes MDT. Précédemment, vous avez constaté que le MDT utilise de nombreux scripts vbs, wsh et fichiers .xml afin de gérer les différents cas de figure possibles, mais rassurez-vous, il ne s'agit surtout pas d'aller modifier ces fichiers. Même les spécialistes ne s'y aventurent que rarement, en dernier recours, et je vous assure qu'il y a une grosse marge de manœuvre avant d'en arriver là.
A. Les variables ou propriétés
Ce qu'il faut en premier lieu comprendre, c'est que les différents scénarios MDT réagissent en fonction de "variables", dont certaines sont positionnées dynamiquement selon l'environnement détecté et d'autres, plutôt destinés, à modifier le comportement par défaut des séquences de taches. On parle aussi de "propriétés" pour désigner ces variables. Ne vous offusquez pas, mais pour ma part, j'ai pris l'habitude de parler de "directive" pour désigner une variable, ou une propriété ET sa valeur.
Nous verrons qu'il est également possible de déclarer des propriétés personnalisées et/ou des valeurs dynamiquement calculées.
Vous trouverez une description sur chacune de ces variables en sollicitant l'aide intégrée à la console MDT via [F1] ou la documentation "Toolkit Reference.docx" associée au téléchargement de MDT. Accrochez-vous, le document frise les 500 pages !...
Si vous n'êtes pas persuadé de cette richesse, je vous invite à utiliser l'outil fournit ici par l'équipe Microsoft "deploymentguys", comme ceci :
.\DeclareProperties.ps1 -deploymentshare C:\DeploymentShare -inifile C:\DeploymentShare\Control\CustomSettings.ini -ztigatherfile C:\DeploymentShare\Scripts\ZTIGather.xml -outputFile MDTVariables.txt
On obtient un fichier d'un peu plus de 1000 lignes, soit un potentiel équivalent de variables. Je ne vais donc pas en dresser une liste exhaustive, mais plutôt essayer d'aller à l'essentiel.
Ces variables et leurs valeurs sont positionnées et exploitées durant les différentes phases et tout au long des traitements de scénarios MDT. Elles sont donc présentes en mémoire, mais également stockées dans le fichier "%SYSTEMDRIVE%\MININT\SMSOSD\OSDLOGS\VARIABLES.DAT" afin de survivre aux redémarrages. A des fins de débogage, sachez que contrairement aux apparences, ce fichier est de format "xml". La lecture est un peu rude, mais reste tout à fait compréhensible sous réserve d'utiliser un éditeur adapté ou Internet Explorer:
<?xml version="1.0"?> <MediaVarList Version="4.00.5345.0000"> <var name="LOGPATH"> <![CDATA[D:\MININT\SMSOSD\OSDLOGS]]> </var><var name="DEBUG"> <![CDATA[FALSE]]> </var><var name="SMSTSLOCALDATADRIVE"> <![CDATA[D:]]> </var>
B. Valorisation et traitement
Dans les grandes lignes, on peut considérer que les variables MDT sont valorisées successivement :
- durant la phase de collecte (exécution du script "ZTIGather.wsf") chargée de détecter l'environnement en fonction du contexte.
- durant la lecture du fichier Bootstrap.ini
- durant la lecture du fichier unattend.xml
- durant la lecture du fichier CustomSettings.ini
- durant le traitement de la base de données
- durant l'exécution d'une séquence de tache
A des fins de tests ou d'investigations, il est possible d'évaluer les variables traités par le script de collecte via la commande suivante :
cscript ZTIGather.wsf /debug:TRUE /inifile:Settings.ini
Bien que marginal, ou pour le moins très ponctuel, sachez qu'il est également possible de stipuler des variables lors de l'exécution du script "Litetouch.vbs".
Par exemple:
\\WDS-MDT\DeploymentShare$\Scripts\Litetouch.vbs /DeploymentType:REFRESH /SkipDeploymentType:YES /OSDComputerName:PC0001
Ou pour accéder directement à une séquence de tache particulière :
\\WDS-MDT\DeploymentShare$\Scripts\Litetouch.vbs /TasksequenceID:IdentifiantDeLaTache
Sachez qu'il est aussi possible d'exploiter plusieurs configurations, ou variantes de CustomSettings.ini
- Via le script d'initialisation, soit "LiteTouch.vbs /RulesFile:"\\CheminDuCS.ini"
- Au sein d'une séquence de taches, au niveau de "Gather local only"
Les possibilités sont tellement vastes, que la tâche la plus compliqué est de choisir la technique qui vous convient le mieux parmi toutes celles que le MDT peut proposer.
En fait, pour les cas le plus courants, la configuration de MDT passe essentiellement par les fichiers "bootstrap.ini" et "CustomSetting.ini" présents par défaut dans le dossier "\Control" de la structure MDT. Nous allons voir que ces fichiers de configuration, (Rules Files) sont composés de sections destinées à gérer des plusieurs déclinaisons de traitement.
Traitement du CustomSetting.ini :
La manipulation de ces fichiers est assez aisée au début, mais cette approche montre rapidement ses limites lorsque le nombre de déclinaison augmente. C'est pour cette raison que MDT propose d'associer une base de données de type SQL Server. Ce complément facultatif, permet d'étendre les possibilités de MDT et affiner les différents scénarios. L'un des premiers intérêts est d'associer des noms de machine en fonction d'un identifiant unique tel que l'adresse MAC. Cette information étant généralement connue des bases d'inventaire de l'entreprise.
Moins évident, mais néanmoins très intéressant, le MDT exploite une notion de "rôles" basé sur des requêtes sur les différentes tables de la base de données. Bien que ce soit un peu délicat à maitriser au début, ce concept permet "grossièrement" de gérer des "configurations typiques", déployées selon des critères tels que le site (réseau), l'usage de la machine, un ensemble d'application…
Note : Ne confondez la notion de "rôles" associée à la gestion des fonctionnalités d'un serveur "OSRoles", avec celle mentionnée au sein de la base de données, qui ont une connotation "d'ensembles de configuration" , ou d'une gestion en "paquets".
Si vous ne disposez pas d'un serveur MS SQL dans votre environnement, vous pouvez vous contenter d'une version SQL Server Express, qui fera parfaitement l'affaire. Je ne suis pas un spécialiste du sujet, mais je pense que vous mettrez un certain temps avant de saturer cette base de données avec MDT.
III. Étude des fichiers de configuration Bootstrap.ini et CustomSetting.ini
Comme mentionné dans le tutoriel précédent, "Débuter avec MDT 2013", le fichier "CustomSetting.ini" peut être édité directement au sein de la console MDT, via les propriétés de votre partage de dépliement sous l'onglet "Rules".
A votre convenance, vous pouvez également éditer ce fichier via un autre éditeur de texte tel que le bloc-notes ou Notepad++.
En revanche, pour le fichier Bootstrap.ini la console MDT ne propose pas d'édition intégrée, mais un bouton qui aura pour effet de l'éditer avec le bloc-notes.
Note : Certaines variables ou directives peuvent être mentionnées dans le fichier de primo-configuration "BootStrap.ini". Reportez-vous à la documentation officielle "Toolkit Reference.docx" pour plus de détail. Je vous conseille toutefois de limiter les modifications de ce fichier qui, contrairement au "CustomSetting.ini", nécessite une régénération des clients LiteTouch.
A. Le CustomSetting.ini par défaut
Commençons déjà par analyser le contenu par défaut. Au début, ce fichier est composé de simplement 2 sections [Settings] et [Default], mais nous allons voir que ce nombre peut rapidement augmenter.
Directive | Explications |
[Settings] | Section obligatoire chargée de définir le traitement global du fichier de configuration. Elle stipule essentiellement dans quel ordre les autres sections vont être traitées et donc la priorité des variables qui seront appliquées. |
Priority=Default | Défini l'ordre de traitement des différentes sections utilisées pour positionner les valeurs des variables. Les noms doivent être séparés par des virgules et sont traités du premier au dernier. En cas de conflit, c'est donc le dernier qui prime. |
Properties=MyCustomProperty | Cette entrée permet de déclarer des propriétés supplémentaires. Réservé à des usages avancés, abordés ci-après, cette directive sert à définir des variables personnalisées qui ne seraient pas déjà prises en charge par MDT. (cf ZTIGather.xml ). |
[Default] | Section obligatoire qui permet de définir les valeurs qui seront appliquées par défaut à tous les ordinateurs. |
OSInstall=Y | Cette directive indique que l'ordinateur est censé effectuer un déploiement du système d'exploitation |
SkipCapture=YES | Cette directive permet de masquer l'écran de capture dans l'assistant wizard.hta. Nous reviendrons plus tard sur l'intérêt de cette variable |
SkipAdminPassword=YES | Cette directive permet de masquer l'écran de saisie d'un mot de passe pour l'administrateur local. L'éventuel mot de passe contenu dans l'image de référence restera alors inchangé. |
SkipProductKey=YES | Cette directive permet de masquer l'écran de saisie de la clé produit qui peut être stockée dans le fichier de réponse correspondant (unattend.xml). Toutefois, en fonction du système d'exploitation installé, et afin d'éviter l'interruption d'une installation, vous pouvez indiquer dans ce fichier, une clé par défaut. Cf "Annexe - Clés d’installation des clients KMS" |
SkipComputerBackup=YES | Cette directive, apparue avec MDT2012, permet de masquer l'écran de sauvegarde préalable à un déploiement sur un poste fonctionnel. |
SkipBitLocker=YES | Cette directive permet de masquer l'écran de mise en œuvre du chiffrement intégral de disque dur "BitLocker". Attention, si vous l'activez la version du système d'exploitation doit le supporter. |
Normalement, les directives ne sont pas sensibles à la casse (majuscules/minuscules) et les valeurs comme "Y", "YES", "Yes" sont valides. Toutefois, probablement pour des raisons historiques et par convention, il est souhaitable de respecter les préconisations proposées dans l'aide en ligne, c’est-à-dire "YES" ou "NO".
Astuce : Vous pouvez ajouter un point-virgule ou un dièse en début d'une ligne pour la commenter et ainsi éviter son traitement ou bien pour mentionner un complément personnalisé d'information.
Si je résume, la section [Default] doit contenir vos préférences générales, s'appliquant au plus grand nombre de vos scénarios de déploiement, et pour lesquels vous souhaitez contrôler les valeurs par défaut.
Ensuite, vous pouvez ajouter des sections supplémentaires pour traiter les cas particuliers sans oublier de mentionner l'ordre au niveau de la directive "Priority =".
B. Le Bootstrap.ini par défaut
Ce fichier est en quelque sorte le premier point d'entrée dans la configuration de MDT. Il contient donc les informations cruciales de l'initialisation des processus MDT. Pour votre gouverne, son initialisation est déclenchée par la commande "BDDRun.exe /Bootstrap" contenue dans le noyau des clients LiteTouch. Reportez-vous à mon tutoriel sur la "Présentation de WinPE" et les explications sur les processus d'initialisation.
Il partage la même logique que son homologue de type .ini et à l'issue d'une première installation de MDT, son contenu est le suivant:
Directive | Explications |
[Settings] | Même principe que CustomSetting.ini |
Priority=Default | Même principe que CustomSetting.ini |
[Default] | Section obligatoire qui permet de définir les valeurs qui seront appliquées par défaut à tous les ordinateurs. |
DeployRoot=\\WDS-MDT\DeploymentShare$ | Cette directive indique l'emplacement racine du partage de déploiement MDT, généralement sous la forme d'un chemin UNC. |
Nous allons voir par la suite comment l'améliorer.
C. Principes avancés des fichiers .INI
1. Explications
Le traitement des fichiers .INI est bien plus complexe qu'il n'y parait. En effet, il possible de personnaliser à l'extrême son séquencement. On retrouve toujours une section [Settings] chargée de définir les sections et l'ordre de leur traitement, mais parfois également des propriétés personnalisées. Au sein de ces sections, on trouve généralement les directives préconisées dans la plupart des cas, mais également vos propriétés personnalisées, auxquelles peuvent être associées des valeurs simples ou calculées. De plus, il est possible d'ajouter des sous-sections qui seront traitées en fonction d'une autre valeur.
[Settings] ; ordre de lecture des sections Priority=Section1, Section2, Section3... ; propriétés personnalisées Properties=CustStaticVar, CustDynamicVar [Section1] ; valorisation avec un contenu statique CustStaticVar=PC ; valorisation avec un contenu dynamique CustDynamicVar=#Day(Date) & "-" & Month(Date) & "-" & Year(Date)# [Section2] ; déclaration d'une sous-section avec nom fixe SubSection=Section2-1 [Section2-1] Result=Value [Section3] ; déclaration d'une sous-section avec nom calculé SubSection=Server-%IsServer% [Server-True] OSDComputerName=SRV-#Right("%SerialNumber%",7)#
Dans cet exemple "non fonctionnel", la variable personnalisée "CustDynamicVar" est valorisée selon une donnée calculée dynamiquement, telle que la date actuelle "#Day(Date)& "-" & Month(Date) & "-" & Year(Date)#". Les caractères dièse "#" servent à borner l'expression.
Note : Les expressions sont exprimées en code vbscript . Vous disposez donc de toute la panoplie des fonctions disponibles dans ce langage.
Pour le second exemple de valeur calculée, "OSDComputerName=" les signes "pourcent" référent une variable "%SerialNumber%", déjà positionnée lors de la collecte, en l'occurrence le numéro de série de la machine.
La sous-section déclarée dans la "Section3" est calculée sur la variable booléenne "%IsServer%" déjà positionnée lors de la collecte. S'il s'agit d'un système de type "Serveur", cette variable renvoie "True" ce qui permet de composer le nom de la sous-section à atteindre, soit "Server-True" dans cet exemple.
Pour illustrer ce principe avec un exemple plus concret :
Supposons que vous vouliez différencier des certains paramètres en fonction des chacun de vos sites et définir un nommage particulier selon que les ordinateurs soient de type portable ou de bureau. Pour un tel cahier des charges, le recours à la passerelle IP par défaut, soit la variable MDT "%DefaultGateway%", peut être un bon moyen pour localiser un emplacement ou un site. Pour ce qui est de la différentiation des types portable ou de bureau, il suffit d'interroger les variables booléennes MDT "%IsLapTop%" et "%IsDeskTop%".
Pour définir un nom unique d'ordinateur, vous avez plein de possibilités telles que :
- Utiliser tout ou partie du numéro de série, - #Right("%SerialNumber%",7)#
- Utiliser tout ou partie de l'adresse MAC - #Replace(Right(MACAddress,11),":","")#
- Utiliser un nombre aléatoire. #Int(Rnd()*1000000)#
N'oubliez pas de respecter les règles de base NetBIOS, telles que la limitation à 15 caractères pour la compatibilité ascendante, et éviter les caractères spéciaux dont le soulignement.
Ce qui pourrait donner un fichier comme suit :
[Settings] Priority=Init, ByLaptop, ByDesktop, DefaultGateway, Default Properties=mySite, myPCType, myNumber [Init] myNumber=#Replace(Right("%MACAddress%",11),":","")# [ByLaptop] SubSection=Laptop-%IsLapTop% [Laptop-True] myPCType=LT MachineObjectOU=OU=Portables,OU=Postes,DC=Cnf1g,DC=Local [ByDesktop] SubSection=Desktop-%IsDesktop% [Desktop-True] myPCType=DT MachineObjectOU=OU=Fixes,OU=Postes,DC=Cnf1g,DC=Local [DefaultGateway] 192.168.75.1=Paris 192.168.44.1=Nantes 192.168.35.1=Rennes 192.168.100.1=Londres [Paris] mySite=PAR TimeZoneName=Romance Standard Time [Nantes] mySite=NTE TimeZoneName=Romance Standard Time [Rennes] mySite=RNE TimeZoneName=Romance Standard Time [Londres] mySite=LON TimeZoneName=GMT Standard Time [Default] OSInstall=Y OSDComputername=%mySite%-%myPCType%-%myNumber% SkipCapture=YES SkipAdminPassword=YES SkipProductKey=YES SkipComputerBackup=YES SkipBitLocker=YES
2. Tests et débogage
Il ne vous reste plus qu'à tester cet exemple, mais la mise au point peut s'avérer longue et fastidieuse. Aussi, pour ces cas complexes, je vous conseille de tester la configuration sans passer par le scénario complet. Pour cela, téléchargez préalablement l'excellent outil "MDT Debugger" de l'équipe "The Deployment Guys". C'est un simple exécutable à déposer dans un dossier quelconque, tel que "\\WDS-MDT\DeploymentShare$\Tools". Ensuite, déposez le fichier de configuration à tester, que nous nommerons "CS-Complex.ini " dans le dossier "\\WDS-MDT\DeploymentShare$\Control". Ouvrez ensuite une invite de commande, puis exécutez les commandes suivantes :
cd C:\DeploymentShare\Tools .\CUSTOM_MDTDebugger.exe cscript ..\scripts\ZTIGather.wsf /inifile:..\Control\CS-Complex.ini
La fenêtre suivante sera alors affichée, et vous permettra de contrôler précisément les traitements effectués ainsi que l'état des différentes variables et propriétés.
Si vous utilisez l'outil plusieurs fois de suite, pensez à supprimer le fichier suivant pour éviter les rémanences.
del C:\MININT\SMSOSD\OSDLOGS\VARIABLES.DAT
D. Les écrans de l'assistant
Pour cette étude, je vous propose d'aborder la configuration du MDT au travers des différents écrans affichés par l'assistant de déploiement "wizard.hta" exploité sur les clients LiteTouch. Pour l'exemple, nous prendrons un scénario courant d'une séquence de tache de déploiement "Standard Client Task Sequence".
Grossièrement, on peut considérer que les directives destinées à masquer les écrans de cet assistant sont de la forme "skip…=YES". A titre d'information, voici la liste de ces variables :
SkipAdminAccounts, SkipAdminPassword, SkipApplications, SkipBDDWelcome, SkipBitLocker, SkipBuild, SkipCapture, SkipComputerBackup, SkipComputerName, SkipDomainMembership, SkipFinalSummary, SkipGroupSubFolders, SkipLocaleSelection, SkipPackageDisplay, SkipProductKey, SkipRearm, SkipRoles, SkipSummary, SkipTaskSequence, SkipTimeZone, SkipUserData, SkipWizard
Toutefois, si vous décidez de passer un écran sans l'afficher, n'oubliez pas qu'il sera nécessaire de contrôler les variables associées ou accepter les valeurs par défaut.
Attention : Les écrans affichés sont variables selon les scénarios traités et certains peuvent être automatiquement masqués en l'absence de contenu, tels que des applications, des packages, ou lorsque certaines conditions ne sont pas remplies…
1. Page de bienvenue
Titre de l'écran de l'assistant : Welcome
Fichier de configuration préconisé : BootStrap.ini
Directive de masquage : SkipBDDWelcome=YES
Propriétés concernées :
- KeyboardLocalePE=040c:0000040c Modifier le clavier en Français
Pour affecter une adresse IP statique :
Bien que les environnements DHCP soit plus simples à mettre en œuvre, vous pouvez affecter une adresse IP statique sur les clients LiteTouch. Pour cela, vous pouvez soit laisser la page de bienvenue visible et utiliser l'assistant, soit utiliser des commandes "netsh", soit utiliser l'une des techniques suivantes :
- Ajout de tout ou partie des propriétés suivantes au sein du fichier de configuration BootStrap.ini
- OSDAdapterCount=1
- OSDAdapter0EnableDHCP=FALSE
- OSDAdapter0IPAddressList=192.168.100.220
- OSDAdapter0SubnetMask=255.255.255.0
- OSDAdapter0Gateways=192.168.100.1
- OSDAdapter0DNSServerList=192.168.1.11,192.168.1.12
- OSDAdapter0DNSSuffix=labo.local
- Modifier le fichier "\unattend.xml" des clients LTI (modification du noyau WinPE) comme suit :
<component name="Microsoft-Windows-TCPIP" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Interfaces> <Interface wcm:action="add"> <Ipv4Settings> <DhcpEnabled>false</DhcpEnabled> <Metric>10</Metric> <RouterDiscoveryEnabled>false</RouterDiscoveryEnabled> </Ipv4Settings> <UnicastIpAddresses> <IpAddress wcm:action="add" wcm:keyValue="1">192.168.100.220/24</IpAddress> </UnicastIpAddresses> <Identifier>Ethernet</Identifier> </Interface> </Interfaces> </component>
Cette seconde technique à ma préférence, mais j'admets qu'elle est plus délicate à mettre en œuvre. En effet, il faut être familier de l'éditeur WSIM à moins de copier/coller cet exemple et il faudra injecter cette modification au sein du noyau WinPE, dans le fichier Boot.WIM.
2. Saisie des identifiants de connexion
Titre de l'écran de l'assistant : User Credentials
Fichier de configuration : BootStrap.ini
Directive de masquage : N/A - Automatiquement passé si les propriétés ci-après sont toutes renseignées.
Propriétés concernées :
- UserID=CompteUtilisateur - Entrez le nom du compte de déploiement local ou de domaine
- UserPassword =MotDePasse - Entrez le mot de passe du compte en clair
- UserDomain=DomaineOuServeurMDT - Entrez le nom du domaine Active Directory ou le nom ou adresse IP du serveur MDT s'il s'agit d'un compte local.
3. Séquence(s) de taches
Titre de l'écran de l'assistant : Task Sequence
Fichier de configuration : Bootstrap.ini / CustomSettings.ini
Directive de masquage : SkipTaskSequence =YES
Propriétés concernées :
- TaskSequenceID=Aucun - Entrez l'identifiant de la séquence de taches souhaitée. Vous pouvez retrouver cette information au niveau des propriétés d'une séquence de taches.
4. Détails de l'ordinateur
Titre de l'écran de l'assistant : Computer Details
Fichier de configuration : CustomSettings.ini
Directives de masquage : SkipComputerName =YES : SkipDomainMembership=YES
Propriétés concernées :
- OSDComputerName=NomMachine - Par défaut, MDT affecte un nom commençant par "MININT-" suivi d'un identifiant unique aléatoire.
- JoinWorkgroup=NomDuGroupeDeTravail - Par défaut, MDT affecte le nom "WORKGROUP"
Ou pour joindre l'ordinateur à un domaine
- JoinDomain=NomDuDomaine - Entrez le nom du domaine Active Directory à joindre
- DomainAdmin=CompteDeJonction - Entrez le nom d'un compte habilité à joindre un ordinateur au domaine
- DomainAdminDomain=NomDeDomaineDuCompte - Entrez le nom du domaine auquel appartient le compte habilité
- DomainAdminPassword= MotDePasse - Entrez le mot de passe du compte en clair
5. Transfert des données et paramètres d'utilisateur (USMT)
Titre de l'écran de l'assistant : Move Data and Settings / User Data (Restore)
Fichier de configuration : CustomSettings.ini
Directive de masquage : SkipUserData =YES
Propriétés concernées :
- DoNotFormatAndPartition=YES - Ne formate pas les partitions existantes afin de préserver le contenu (Nouveauté MDT2013).
- UDDir =Nom du dossier dans lequel seront stockées les données USMT ou la sauvegarde
- UDShare = Chemin UNC dans lequel seront stockées les données USMT ou la sauvegarde
- UserDataLocation = UNC | AUTO | NETWORK |NONE - Définit le chemin UNC ou la méthode de stockage des données USMT ou la sauvegarde - Par défaut, la valeur est "AUTO"
6. Saisie de la clé produit
Titre de l'écran de l'assistant : Product Key
Fichier de configuration : CustomSettings.ini
Directive de masquage : SkipProductKey =YES
Propriétés concernées :
- ProductKey = AAAAA-BBBBB-CCCCC-DDDDD-EEEEE-FFFFF - Entrez la clé KMS du produit (5 blocs de 5 caractères alphanumériques).
- OverrideProductKey= AAAAA-BBBBB-CCCCC-DDDDD-EEEEE-FFFFF - Permet d'affecter une clé MAK lorsque le serveur KMS est injoignable
7. Réglages des préférences régionales
Titre de l'écran de l'assistant : Locale and Time
Fichier de configuration : CustomSettings.ini
Directives de masquage : SkipLocaleSelection =YES : SkipTimeZone=YES
Propriétés concernées :
- UILanguage=fr-FR - Entrez l'identifiant de la langue d'installation - ici "French (France)"
- UserLocale=fr-FR - Entrez la préférence régionale - ici "French (France)"
- KeyboardLocale= 040C:0000040C - Entrez le code pays selon le clavier désiré - ici "French"
- TimeZoneName = Romance Standard Time - Entrez le nom du fuseau horaire - ici "(UTC+01:00) Brussel, Copenhagen, Madrid, Paris"
- TimeZone=105 - Alternative au précédent - Entrez le code du fuseau horaire - ici "105" pour celui de la France
8. Applications à installer
Titre de l'écran de l'assistant : Applications
Fichier de configuration : CustomSettings.ini
Directives de masquage : SkipApplications=YES : SkipAppsOnUpgrade=YES
Cet écran permet de sélectionner les applications qui seront installées durant la tache de post-installation d'une séquence de taches.
Propriétés concernées :
- Applications00x ={guid} - Ces directives particulières commencent par "Applications" suivi d'un numéro d'ordre de 001 à 999. La valeur doit correspondre l'identifiant global unique {GUID} des applications. Vous pouvez retrouver cette valeur au niveau des propriétés de chaque application ajoutée dans le MDT.
- MandatoryApplications00x ={guid} - Identique au précédent, mais rend obligatoire l'installation de l'application. En fait, la case ne peut pas être décochée (grisée) lorsque cet écran est affiché.
9. Saisie du mot de passe d'administrateur local
Titre de l'écran de l'assistant : Administrator Password
Fichier de configuration : CustomSettings.ini
Directive de masquage : SkipAdminPassword =YES
Propriétés concernées :
- AdminPassword =MotDePasse - Entrez le mot de passe du compte d'administrateur local en clair. Si cette information n'est pas mentionnée, MDT conservera le mot de passe défini dans la base de compte locale du système installé. Autrement dit, pour une distribution originale Microsoft, le mot de passe est vide, mais pour une image de référence, le mot de passe peut être défini durant la séquence de fabrication préalable à sa capture.
10 . Capture d'une image de référence
Titre de l'écran de l'assistant : Capture Image
Fichier de configuration : CustomSettings.ini
Directive de masquage : SkipCapture =YES
Propriétés concernées :
- DoCapture= - Entrez la valeur "YES" pour activer la première option de capture, soit "Capture an image of this reference computer.", ou entrez la valeur "SYSPREP" pour activer la seconde option, soit "Sysprep this computer.", ou entrez la valeur "PREPARE" pour activer la troisième option, soit "Prepare to capture this machine."
Si vous optez pour l'option la plus courante, soit "DoCapture=YES", vous avez la possibilité de spécifier le chemin et le nom de l'image de destination. Les directives sont les mêmes que pour une sauvegarde.
- ComputerBackupLocation=\\Serveur\Partage - Entrez le chemin UNC de destination de la capture. Par défaut, ce chemin correspond au sous dossier "Captures" situé sur le partage de déploiement, comme par exemple "\\WDS_MDT\DeploymentShare\Captures". N'oubliez pas d'accorder les autorisations d'écriture sur cette ressource.
- BackupFile=Fichier.WIM - Entrez le nom de l'image .wim résultante. Correspond par défaut à l'identifiant de la séquence de tache, soit "%TaskSequenceID%.wim"
11. Résumé préalable
Titre de l'écran de l'assistant : Ready to begin
Fichier de configuration : CustomSettings.ini
Directive de masquage : SkipSummary =YES
Propriétés concernées : N/A
12. Résumé de fin de déploiement
Titre de l'écran de l'assistant : Operating system deployment completed successfully : Operating system deployment did not complete successfully
Fichier de configuration : CustomSettings.ini
Directive de masquage : SkipFinalSummary =YES
Ecran Blanc = Aucune erreur, Jaune = Avertissement, Rose = Erreur critique
Quand il y a une erreur, ça donne ça :
Propriétés concernées :
- FinishAction= - Permet de définir le comportement souhaité à l'issue du déploiement, par défaut si l'écran n'est pas masqué, le résumé de fin de déploiement reste affiché. Entrez l'une des valeurs, telle que "LOGOFF | SHUTDOWN | RESTART | REBOOT" afin de respectivement, fermer la session, arrêter, redémarrer à chaud ou à froid l'ordinateur.
Afin de ne pas trop alourdir cette présentation déjà conséquente, je vous invite à vous reporter à la documentation officielle pour les autres cas particuliers non abordés ici.
Ecran de l'assistant | Masqué via cette propriété | Configurer ces propriétés |
Computer Backup | SkipComputerBackup | · BackupDir· BackupShare· ComputerBackupLocation |
Language Packs | SkipPackageDisplay | · LanguagePacks |
Roles and Features | SkipRoles | · OSRoles· OSRoleServices· OSFeatures |
Local Administrators | SkipAdminAccounts | · Administrators |
Bitlocker | SkipBitLocker | · BDEDriveLetter· BDEDriveSize· BDEInstall· BDEInstallSuppress· BDERecoveryKey· TPMOwnerPassword· OSDBitLockerStartupKeyDrive· OSDBitLockerWaitForEncryption |
E. Exemple de personnalisation
1. Postulat du cas étudié
Afin d'illustrer tout ceci, nous allons prendre l'exemple d'une capture d'un poste de référence. En effet, si vous n'êtes pas encore familiarisé avec ce concept, on peut considérer que contrairement aux scénarios habituels de déploiement, il s'agit d'un cas particulier que la séquence de tache associée doit prendre en compte.
Pour faire court, cette notion de "capture" est essentiellement liée aux processus de fabrication d'un ordinateur de référence, souvent désigné par l'anglicisme "Master". Sur le plan pratique, la capture consiste à générer une image .WIM à partir d'un poste remis en condition de déploiement via l'outil "sysprep". Avec MDT, on peut distinguer 2 techniques de fabrication :
- La capture manuelle : L'installation et la configuration de l'ordinateur de référence est faite manuellement puis on sollicite ensuite via le réseau, le script "LiteTouch.vbs" situé sur le partage MDT, afin de déclencher une séquence de tache de type "Sysprep and Capture".
- La capture automatisée : L'installation et la configuration de l'ordinateur de référence est réalisée par une séquence de tache de type "Standard Client Task Sequence" à laquelle on associe l'enchainement des actions de préparation et de capture. Bien que plus délicate à mettre au point, cette méthode garantit et normalise le processus de fabrication.
2. Appliquer une configuration à une machine précise
Il existe plusieurs moyen d'identifier un ordinateur, mais pour cet exemple, nous allons distinguer la machine de référence (virtuelle ou non) par son adresse MAC. Pour cela, il suffit d'ajouter la variable "MACAddress" au niveau de la directive "Priority=" et d'ajouter une nouvelle section correspondante à la valeur de l'adresse physique de la machine, au format [00:00:00:AA:BB:CC].
Note : Sous Windows, les commandes "arp" ou "ipconfig" renvoient l'adresse MAC séparée par un tiret avec les lettres en minuscule. Pour MDT, il faudra remplacer les tirets par des double-points et mettre les lettres en majuscule, soit en langage powershell : ("00-15-5d-00-2c-15").Replace("-",":").ToUpper()
Besoin d'un script plus élaboré pour valider le format ?, cf ici
3 . Création de la séquence de test
Pour un premier test de cette configuration, je vous propose de créer une nouvelle séquence de tache de type "Sysprep and Capture". Par exemple, nous lui affectons l'identifiant "CAPT-001" et le nom arbitraire "Sysprep et Capture uniquement". Au besoin, vous pouvez ajouter cette information dans le fichier au niveau de la section correspondante à l'adresse MAC de notre machine de test.
4. Directives à ajouter dans CustomSettings.ini
Donc dans le cadre de cette démonstration, il nous faut renseigner les directives suivantes :
Directive | Explications |
SkipCapture = NO | YES | Pour afficher ou masquer l'écran de capture |
DoCapture=YES | Active l'option de capture, soit "Capture an image of this reference computer" |
ComputerBackupLocation= | Chemin de destination local ou réseau pour une sauveagarde ou une capture. Pour un partage réseau, l'équivalent est "%BackupShare%\%BackupDir%" |
BackupShare= | Correspond par défaut au chemin UNC du partage de déploiement "%DeployRoot%" |
BackupDir= | Correspond par défaut au sous-dossier "\Captures" situé à la racine du partage de déploiement |
BackupFile= | Correspond par défaut à l'identifiant de la séquence de tache, soit "%TaskSequenceID%.wim" |
Remarque importante : Les processus de capture MDT échouent systématiquement dès lors que l'ordinateur est membre d'un domaine. Autrement dit, les séquences de capture ne sont traitées que sur des ordinateurs autonomes au sein d'un simple groupe de travail.
Le fichier de configuration devrait approximativement ressembler à ceci :
[Settings] Priority = MACAddress,Default Properties=MyCustomProperty [00:15:5D:00:2C:15] SkipTaskSequence=NO TaskSequenceID=CAPT-001 SkipCapture=NO DoCapture=YES ; ComputerBackupLocation=%DeployRoot%\Captures ; ou BackupShare=%DeployRoot% BackupDir=Captures BackupFile=%TaskSequenceID%.wim [Default] SkipCapture=YES DoCapture=NO
Notez que dans un premier temps, il est préférable de conserver l'affichage des écrans afin de vérifier que les champs soient correctement remplis.
Pour rappel, n'oubliez pas que le dossier de capture doit être accessible en lecture/écriture et que l'exécution du script nécessite généralement des privilèges d'administration.
5. Test du résultat
A partir de la machine de test sur laquelle un système est déjà installé, il ne reste plus qu'à connecter un lecteur réseau pointant sur le serveur MDT et exécuter le script "LiteTouch.vbs" situé sous le dossier "Scripts".
net use z: \\WDS-MDT\DeploymentShare$ /user:WDS-MDT\Admin * Entrez le mot de passe pour \\WDS-MDT\DeploymentShare$ : Z:\Scripts\LiteTouch.vbs
Selon le niveau de sécurité du poste, une confirmation d'exécution peut être affichée.
A l'issue du traitement des fichiers bootstrap.ini et customsetting.ini, et sous réserve que vous ayez correctement saisi l'adresse MAC de la machine de test, l'écran de choix des séquences de taches devrait apparaître avec l'option "Sysprep et Capture uniquement" sélectionnée.
Si c'est bien le cas, pour la prochaine étape, vous pourrez éventuellement changer la directive par SkipTaskSequence=YES. Cliquez sur "Next".
L'écran de capture devrait alors apparaître. Et là encore, la première option doit être déjà sélectionnée et les champs "Location" et "File name" devraient contenir les bonnes informations.
Si c'est bien le cas, pour le test suivant, vous pourrez changer la directive par SkipCapture=YES
Cliquez sur "Cancel".
La démonstration peut s'achever ici, du fait qu'il s'agissait de montrer un exemple simple de capture. Cela étant, il faudrait encore ajuster quelques réglages afin de parfaire cette opération, tels que l'ajout d'applications, de packages ou bien ajuster les composants Windows souhaités.
Voici un exemple de configuration finalisé
[Settings] Priority = MACAddress,Default Properties=MyCustomProperty [00:15:5D:00:2C:15] _SMSTSORGNAME=Creation de l'image de reference - %TaskSequenceID% SkipTaskSequence=YES TaskSequenceID=CAPT-001 SkipCapture=YES DoCapture=YES BackupShare=\\WDS-MDT\DeploymentShare$ BackupDir=Captures BackupFile=BUILD-v%TaskSequenceVersion%.wim ; ajoutez ici les applications a integrer dans l'image de reference SkipApplications=NO SkipAppsOnUpgrade=YES ; Applications001={GUID1} ; Applications002={GUID2} ; Applications003={GUID3} SkipUserData=YES UserDataLocation=NONE SkipComputerName=YES OSDComputerName=BUILD-001 SkipDomainMembership=YES JoinWorkGroup=WORKGROUP SkipLocaleSelection=YES SkipTimeZone=YES UILanguage=fr-FR UserLocale=fr-FR KeyboardLocale= 040C:0000040C TimeZoneName=Romance Standard Time DoNotCreateExtraPartition=YES ApplyGPOPack=NO SLShare=\\WDS-MDT\logs ; pensez a reactiver les taches Windows Update dans la TS WSUSServer=http://wsus SkipAdminPassword=YES SkipBitLocker=YES SkipProductKey=YES SkipRoles=YES SkipSummary=YES SkipFinalSummary=NO FinishAction=SHUTDOWN [Default] _SMSTSORGNAME=Deploiement par defaut - %TaskSequenceID% OSInstall=Y SkipCapture = YES
Exemple de résultat :
Maintenant tous ces choix vous incombent et j'espère que cette présentation sera suffisante à votre envol vers de nouvelles aventures avec MDT.
Conseil : Pensez à sauvegarder régulièrement vos fichiers de configuration opérationnels avant d'effectuer des modifications. Pour l'anecdote, je ne compte plus les heures perdues à chercher une "fausse erreur de traitement" liée simplement à un mauvais encodage du fichier en UTF8 au lieu de ANSI.
F. La base de données MDT DB
Après tout ce remue-méninge autour de ce fameux fichier de configuration, un constat viens rapidement à l'esprit. A une plus grande échelle, le nombre de ligne va très rapidement augmenter, et on atteint très rapidement les limites en termes de lisibilité. En effet, les risques de doublons ou d'erreur dans les déclarations de variables n'est pas négligeable et difficile à identifier. Est-ce raisonnable de maintenir un tel fichier pour gérer toutes les déclinaisons de mon entreprise ?
C'est à ce moment que la base de données "MDT DB" devient intéressante.
Installer une base de donnée pour MDT peut paraitre délicat pour un néophyte et pour débuter, un tutoriel arrivera prochainement dans lequel j'aborde l'installation d'une base SQL Server Express ainsi que l'exploitation des nouvelles possibilités telles que la notion de rôles
IV. Aller plus loin avec CS.ini : Quelques Trucs et Astuces
A. Ne pas créer la partition additionnelle d'amorçage
Vous avez sans doute remarqué que le MDT génère une partition supplémentaire dans le but d'y stocker les fichiers d'amorçage et surtout dans l'hypothèse d'activer le chiffrement intégral de disque BitLocker. Hors, cette fonctionnalité n'est disponible pas sur les versions, vous pouvez désactiver la création de cette partition supplémentaire via la directive suivante :
DoNotCreateExtraPartition=YES
B. Affecter des valeurs dynamiques aux variables MDT
1. Personnalisation de la bannière de déploiement
Nous avons vu qu'il était possible d'affecter de nombreuses valeurs aux propriétés MDT , comme par exemple " _SMSTSOrgName= MonEntreprise" pour personnaliser la bannière de déploiement. Toutefois, ces valeurs sont statiques et il peut être parfois intéressant de composer dynamiquement certains contenus.
Exemples :
Pour afficher l'identifiant de la séquence et le nom de l'ordinateur sur la bannière de déploiement, vous pourriez utiliser la directive suivante :
_SMSTSOrgName = Execution de la séquence %TaskSequenceID% sur %OSDComputername%
Notez que la seconde ligne de la bannière de déploiement (Running:) est également personnalisable via la variable "_SMSTSPackageName="
2. Personnalisation des noms de machines
Pour composer vos propres noms de machine à partir des 5 derniers chiffres du numéro de série, vous pourriez utiliser la directive suivante :
OSDComputername = PC-#Right("%SerialNumber%",4)#
Les caractères "#" permettent d'encadrer le code à évaluer
3. Ciblage des pilotes en fonction des machines
Pour maîtriser la distribution des pilotes en fonction de la marque et du modèle de machine
DriverSelectionProfile=Nothing DriverInjectionMode=ALL DriverGroup001=Windows 7\x64\%Make%\%Model%
Notez que cette astuce ne fonctionne que si vos pilotes sont organisés selon une hiérarchie de dossiers correspondant exactement à la marque et au modèle de machine renvoyé par les requêtes WMI. Vous pouvez obtenir ces renseignements :
- Via la console WMI
WMIC CSProduct Get Name, Vendor
Relevez collectez les valeurs "Vendor" (Make) et "Name" (Model)
- Via Powershell
Get-WmiObject Win32_ComputerSystem | Select Model,Manufacturer
Relevez les valeurs "Manufacturer" (Make) et "Model" (Model)
4. Ajouter la date de création sur le fichier de capture
Cet exemple permet de nommer le fichier résultant d'une capture ajoutant la date de fabrication à l'identifiant la séquence de tache.
DoCapture=YES BackupShare=%DeployRoot% BackupDir=Captures BackupFile=%TaskSequenceID%_#day(date) & "-" & month(date) & "-" & year(date)#.wim
C. Activer les mises à jour Windows Update, mais bloquer des correctifs indésirables
WSUSServer=http://WSUSServer:8530 WUMU_ExcludeKB001=976002 WUMU_ExcludeKB002=2267621 WUMU_ExcludeKB003=2434419
Par exemple, le programme européen de choix du navigateur par défaut, silverlight, la barre d'outil "Bing",…
;Microsoft Browser Choice Screen Update for EEA Users of Windows 7 for x64-based Systems (KB976002) WUMU_ExcludeKB1=976002 ;Microsoft Silverlight (KB2636927) WUMU_ExcludeKB2=2636927 ;Windows Internet Explorer 9 for Windows 7 for x64-based Systems (KB982861) WUMU_ExcludeKB3=982861 ;Bing Desktop (KB2694771) WUMU_ExcludeKB4=2694771
Attention : Par défaut les taches de mise à jour sont présentes, mais désactivées
D. Masquer l'explorateur durant le déploiement
Pour masquer l'explorateur Windows (et implicitement le bureau) durant les taches de déploiement telles que l'installation des applications, vous pouvez utiliser la directive suivante :
HideShell=YES
Utilisez toutefois, ce réglage avec parcimonie, car certaines applications ne supportent pas toujours ce genre de contrainte.
E. Définir le service de surveillance des déploiements MDT (Monitoring)
Depuis MDT2012, vous pouvez activer un service de surveillance de vos déploiements MDT. Pour cela, utilisez la directive suivante :
EventService=http://SERVER:9800
F. Ajouter des administrateurs locaux
Vous avez la possibilité d'ajouter des administrateurs locaux, comptes d'utilisateur ou groupes d'un domaine via la directive suivante :
Administrators001=Domaine\NomDuGroupe
G. Activer la journalisation dynamique des déploiements
MDT permet d'activer , la journalisation dynamique des déploiements via la directive suivante :
SLShareDynamicLogging=\\SERVER\SHARE$\Logs\%OSDComputerName%
N'abusez pas de ce réglage qui peut engendrer une augmentation significative du trafic réseau.
Annexes - Clés d’installation des clients KMS
Ne vous emballez pas, il s'agit là d'une information tout à fait légale, disponibles sur les sites officiels de Microsoft : Technet - Clé KMS
Les clés fournies ci-après n'ont aucune valeur pour l'activation et sont uniquement destinées aux processus d'installation automatisées. Dans la plupart des cas, vous disposez d'une période de grâce de 30 jours pour entrer votre clé de licence effectivement acquise dans le cadre contractuel.
Remarque : Pour installer une clé d’installation de client, ouvrez une invite de commandes d’administration sur le client, tapez slmgr /ipk <clé d’installation> et appuyez sur ENTRÉE.
Windows Server 2016
Édition du système d’exploitation | Clé d’installation du client KMS |
Windows Server 2016 Datacenter | CB7KF-BWN84-R7R2Y-793K2-8XDDG |
Windows Server 2016 Standard | WC2BQ-8NRM3-FDDYY-2BFGV-KHKQY |
Windows Server 2016 Essentials | JCKRF-N37P4-C2D82-9YXRT-4M63B |
Windows 10
Édition du système d’exploitation | Clé d’installation du client KMS |
Windows 10 Professional | W269N-WFGWX-YVC9B-4J6C9-T83GX |
Windows 10 Professional N | MH37W-N47XK-V7XM9-C7227-GCQG9 |
Windows 10 Enterprise | NPPR9-FWDCX-D2C8J-H872K-2YT43 |
Windows 10 Enterprise N | DPH2V-TTNVB-4X9Q3-TJR4H-KHJW4 |
Windows 10 Education | NW6C2-QMPVW-D7KKK-3GKT6-VCFB2 |
Windows 10 Education N | 2WH4N-8QGBV-H22JP-CT43Q-MDWWJ |
Windows 10 Enterprise 2015 LTSB | WNMTR-4C88C-JK8YV-HQ7T2-76DF9 |
Windows 10 Enterprise 2015 LTSB N | 2F77B-TNFGY-69QQF-B8YKP-D69TJ |
Windows 10 Enterprise 2016 LTSB | DCPHK-NFMTC-H88MJ-PFHPY-QJ4BJ |
Windows 10 Enterprise 2016 LTSB N | QFFDN-GRT3P-VKWWX-X7T3R-8B639 |
Windows Server 2012R2 et Windows 8.1
Édition du système d’exploitation | Clé d’installation du client KMS |
Windows Server 2012 R2 Standard | D2N9P-3P6X9-2R39C-7RTCD-MDVJX |
Windows Server 2012 R2 Datacenter | W3GGN-FT8W3-Y4M27-J84CP-Q3VJ9 |
Windows 8.1 Entreprise | MHF9N-XY6XB-WVXMC-BTDCT-MKKG7 |
Windows Server 2012 et Windows 8
Édition du système d’exploitation | Clé d’installation du client KMS |
Windows 8 Professionnel | NG4HW-VH26C-733KW-K6F98-J8CK4 |
Windows 8 Professionnel N | XCVCF-2NXM9-723PB-MHCB7-2RYQQ |
Windows 8 Entreprise | 32JNW-9KQ84-P47T8-D8GGY-CWCK7 |
Windows 8 Entreprise N | JMNMF-RHW7P-DMY6X-RF3DR-X2BQT |
Windows Server 2012 Core | BN3D2-R7TKB-3YPBD-8DRP2-27GG4 |
Windows Server 2012 Core N | 8N2M2-HWPGY-7PGT9-HGDD8-GVGGY |
Windows Server 2012 Core Unilingue | 2WN2H-YGCQR-KFX6K-CD6TF-84YXQ |
Windows Server 2012 Core Country Specific | 4K36P-JN4VD-GDC6V-KDT89-DYFKP |
Windows Server 2012 Server Standard | XC9B7-NBPP2-83J2H-RHMBY-92BT4 |
Windows Server 2012 Standard Core | XC9B7-NBPP2-83J2H-RHMBY-92BT4 |
Windows Server 2012 MultiPoint Standard | HM7DN-YVMH3-46JC3-XYTG7-CYQJJ |
Windows Server 2012 MultiPoint Premium | XNH6W-2V9GX-RGJ4K-Y8X6F-QGJ2G |
Windows Server 2012 Datacenter | 48HP8-DN98B-MYWDG-T2DCC-8W83P |
Windows Server 2012 Datacenter Core | 48HP8-DN98B-MYWDG-T2DCC-8W83P |
Windows 7 et Windows Server 2008 R2
Édition du système d’exploitation | Clé d’installation du client KMS |
Windows 7 Professionnel | FJ82H-XT6CR-J8D7P-XQJJ2-GPDD4 |
Windows 7 Professionnel N | MRPKT-YTG23-K7D7T-X2JMM-QY7MG |
Windows 7 Professionnel E | W82YF-2Q76Y-63HXB-FGJG9-GF7QX |
Windows 7 Entreprise | 33PXH-7Y6KF-2VJC9-XBBR8-HVTHH |
Windows 7 Entreprise N | YDRBP-3D83W-TY26F-D46B2-XCKRJ |
Windows 7 Entreprise E | C29WB-22CC8-VJ326-GHFJW-H9DH4 |
Windows Server 2008 R2 Web | 6TPJF-RBVHG-WBW2R-86QPH-6RTM4 |
Windows Server 2008 R2 HPC Edition | TT8MH-CG224-D3D7Q-498W2-9QCTX |
Windows Server 2008 R2 Standard | YC6KT-GKW9T-YTKYR-T4X34-R7VHC |
Windows Server 2008 R2 Entreprise | 489J6-VHDMP-X63PK-3K798-CPX3Y |
Windows Server 2008 R2 Datacenter | 74YFP-3QFB3-KQT8W-PMXWJ-7M648 |
Windows Server 2008 R2 pour les systèmes Itanium | GT63C-RJFQ3-4GMB6-BRFB9-CB83V |
Windows Vista et Windows Server 2008
Édition du système d’exploitation | Clé d’installation du client KMS |
Windows Vista Professionnel | YFKBB-PQJJV-G996G-VWGXY-2V3X8 |
Windows Vista Professionnel N | HMBQG-8H2RH-C77VX-27R82-VMQBT |
Windows Vista Entreprise | VKK3X-68KWM-X2YGT-QR4M6-4BWMV |
Windows Vista Entreprise N | VTC42-BM838-43QHV-84HX6-XJXKV |
Windows Web Server 2008 | WYR28-R7TFJ-3X2YQ-YCY4H-M249D |
Windows Server 2008 Standard | TM24T-X9RMF-VWXK6-X8JC9-BFGM2 |
Windows Server 2008 Standard sans Hyper-V | W7VD6-7JFBR-RX26B-YKQ3Y-6FFFJ |
Windows Server 2008 Entreprise | YQGMW-MPWTJ-34KDK-48M3W-X4Q6V |
Windows Server 2008 Entreprise sans Hyper-V | 39BXF-X8Q23-P2WWT-38T2F-G3FPG |
Windows Server 2008 HPC | RCTX3-KWVHP-BR6TB-RB6DM-6X7HP |
Windows Server 2008 Datacenter | 7M67G-PC374-GR742-YH8V4-TCBY3 |
Windows Server 2008 Datacenter sans Hyper-V | 22XQ2-VRXRG-P8D42-K34TD-G3QQC |
Windows Server 2008 pour les systèmes Itanium | 4DWFP-JF3DJ-B7DTH-78FJB-PDRHK |
Bonjour Christophe,
Merci beaucoup pour ce tutoriel très clair.
Je voudrais savoir s’il est possible de faire utiliser à plusieurs DeploymentShares les mêmes dossiers sources, particulièrement Applications, Out-Of-Box Drivers et Operating Systems (les plus volumineux) afin de ne pas avoir à les dupliquer physiquement inutilement.
Le but est de pouvoir exploiter ces mêmes sources (une seule base à maintenir) de manière très différente, trop pour qu’elles puissent toutes être paramétrées dans un seul DeploymentShare / customsettings (multicast ou non, zerotouch ou non…).
J’ai essayé de dupliquer un DS1$ en ne recopiant dans le DS2$ que les dossiers Boot, Control et Scripts et en modifiant les champs Network (UNC) path et Local path du DS2 en faisant pointer les chemins vers DS1. Sous Windows PE cela fonctionne bien: depuis l’image de boot du DS2, on a bien accès aux OS et applications du DS1, le customsettings du DS2 est bien appliqué et on peut lancer un déploiement. Mais il échoue peu après la tâche install operating system.
Connaissez-vous un moyen fiable d’obtenir ce résultat ?
Merci par avance pour votre réponse.
Cécilia
Bonjour Cécilia,
Je ne suis pas sur de comprendre l’intéret d’une telle demande. Nativement le MDT intègre la notion de « linked DeploymentShare » pour synchroniser les DS sur plusieurs emplacements/sites distincts, afin de distribuer les ressources au plus près des machines clientes (Sans évoquer la problématique des liaisons WAN). Il est toujours possible de « bricoler » autre chose mais la simple copie de fichiers MDT ne suffit pas, car toute la mécanique de référencement des ressources se trouve dans les scripts VBS et XML, pleinement et dynamiquement gérée par la console Workbench.
En ne recopiant que des parties, le résultat a peu de chance de succès. Par exemple, ici l’installation de l’OS échoue car le client LTI a initialisé le « DeployRoot » sur DS2, et que les dossiers OS, Appli, etc sont absents. (La plupart de chemins sont relatifs ou déclinés à partir de cette variable)
Je n’ai pas essayé, mais en théorie, si les DS1 et DS2 sont des serveurs Linux, des montages à distance pourraient éventuellement « leurrer » le client. Cela étant dit, si les chemins UNC passent par des liaisons inter-sites, le résultat en terme de performances ne sera pas terrible. Pour rappel, le classement des OS (WIM), Applis, Drivers dans des dossiers MDT permet, en déclarant un « profils de selection » bien ciblés, de ne répliquer qu’une partie des éléments vers un autre DS.
Voila, mais à mon humble avis, il faut revoir l’expression de besoin et bien identifier les contraintes de déploiement.
Bonne continuation
Bonjour,
Merci pour le cours, j’ai un problème avec le déploiement MDT, j’ai installé Windows 7 sur une VM sous hyper-v, j’ai installé mes programmes puis j’ai fait une capture avec l’outil DISM, j’ai donc une image wim que j’ai testé et ça marche sans problème.
Mon problème: j’ai ajouté l’image sur MDT et quand j’ai lancé le déploiement via MDT, le déploiement s’arrête après le dernier redémarrage du poste, en me demandant de choisir une Langue « Français ou Anglais » alors que dans l’image la langue par défaut est français.
Comment je peux lui dire de prendre Français automatiquement?
Merci
Bonjour,
La méthode de fabrication m’interpelle : « faire une capture avec l’outil DISM » ou via MDT (Séquence Sysprep and Capture) ?
A mon avis, si la capture a été effectuée directement avec Dism, il faut poursuivre avec cet outil pour stipuler la langue par défaut. Autrement dit, faire un montage de l’image WIM (Dism /Mount-Wim …) , puis positionner les langages/clavier/etc (Dism /image:C:\mount\capture.wim /Set-UILang:fr-FR), puis démonter l’image WIM en validant ces changement (Dism /Unmount-Wim … /Commit)
https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/dism-languages-and-international-servicing-command-line-options
Sinon on peut éventuellement essayer de renseigner le CustomSettings.ini, en ajoutant :
SkipLocaleSelection=YES
InputLocale=040c:0000040c
KeyboardLocale=040c:0000040c
UILanguage=fr-FR
UserLocale=fr-FR
SystemLocale=fr-FR
mais c’est pas garanti que ça marche
Sinon il faut passer par l’édition du fichier unattend.xml via WSIM, et là c’est plus compliqué.
Bon courage
Merci Christophe pour ton retour, En effet j’ai fait une capture avec l’outil DISM et non pas pas avec MDT ou WDS, J’ai monté l’image comme tu as dit et voila le résultat de « DISM.exe /Online /Get-Intl » :
PS F:\> DISM.exe /Online /Get-Intl
Outil Gestion et maintenance des images de déploiement
Version : 6.3.9600.17031
Version de l’image : 6.3.9600.17031
Rapport sur les paramètres internationaux en ligne.
Langue par défaut de l’interface utilisateur du système : fr-FR
La langue de secours de l’interface utilisateur est : : en-US
Paramètres régionaux système : fr-FR
Fuseau horaire par défaut : Romance Standard Time
Clavier(s) actif(s) : 040c:0000040c
Pilote en couche du clavier : Clavier étendu PC/AT (101/102 touches)
Langue(s) installée(s): fr-FR
Type : langue partiellement localisée, type MUI.
Langues de secours en-US
L’opération a réussi.
Pour info voila le contenu de mon CustomSettings.ini :
[Settings]
Priority=Default
Properties=MyCustomProperty
[Default]
OSInstall=YES
SkipComputerName=NO
SkipDomainMemberShip=NO
SkipUserData=YES
SkipLocaleSelection=YES
InputLocale=040C:0000040C
SystemLocale=fr-FR
UILanguage=fr-FR
UserLocale=fr-FR
KeyboardLocale=040C:0000040C
SkipTimeZone=YES
TimeZone=105
TimeZoneName=Romance Standard Time
SkipCapture=YES
SkipAdminPassword=YES
SkipProductKey=YES
SkipComputerBackup=YES
SkipBitLocker=YES
J’ai essayé de modifier le fichier unattend.xml via WSIM depuis les propriétés de la tâche, dans la phase 4 specialize et la phase 7 OOBE:
amd64_Microsoft-Windows-International-Core__neutral
j’ai tous mis en français sauf UILanguageFallBac que j’ai laissé vide.
Résultat ça marche toujours pas…
Désolé je t’ai envoyé les paramètres de langue de mon poste, plutôt que ceux de l’image :
PS F:\> Dism /Image:F:\MOUNT\ /Get-Intl
Outil Gestion et maintenance des images de déploiement
Version : 6.3.9600.17031
Version de l’image : 6.1.7601.18489
Rapport sur les paramètres internationaux hors connexion.
Langue par défaut de l’interface utilisateur du système : fr-FR
Paramètres régionaux système : fr-FR
Fuseau horaire par défaut : Romance Standard Time
Paramètres régionaux utilisateur pour l’utilisateur par défaut : fr-FR
Emplacement : France (GEOID = 84)
Clavier(s) actif(s) : 040c:0000040c, 0409:00000409
Pilote en couche du clavier : Clavier étendu PC/AT (101/102 touches)
Langue(s) installée(s): en-US
Type : langue entièrement localisée.
Langue(s) installée(s): fr-FR
Type : langue entièrement localisée.
L’opération a réussi.
Bonjour,
Si je comprends bien les 2 derniers messages, ça ne marche toujours pas ?
Si c’est le cas, je ne sais pas trop comment corriger le tir, car d’expérience, les captures hors MDT sont bourrées de pièges, et j’y ai renoncé du longtemps. Ici, la capture DISM a surement été traitée sans préparation Sysprep efficace ou par défaut (cf fichier Panther\Unattend.xml dans l’image WIM).
Autrement dit, avec ces valeurs dans le CS.ini et l’utilisation d’une tache « Sysprep et Capture », (lancement de LiteTouch.vbs à partir de la machine de référence), MDT devrait faire le taf, et je pense que le résultat serait plus probant. (cf Capture Manuelle du paragraphe E.1 de cet article. – Pour rappel, pour réaliser la capture, il faut que la machine soit en Workgroup, ouvrir une session avec un admin, et avoir les droits d’écriture sur le dossier Capture du DShare )
Bonne continuation
Bonjour,
J’ai beaucoup apprécié votre tutoriel mais j’aimerai savoir comment peut-on créer un répertoire que je pourrai nommer « Sources » avec des sous-répertoires et au moment du déploiement que ce dernier soit sur le bureau ?
Bonne continuation
Bonjour,
Je ne comprends pas bien la finalité.
1 – « au moment du déploiement » ? ça veut dire avant ou à la fin de l’installation ?
2 – « dossier Sources … sur le bureau » ? ça veut dire pour tous les utilisateurs ? (sans compter que déposer un répertoire sur le bureau n’est pas une bonne pratique, un lien ou raccourci est préférable)
Bref, selon les contraintes, (non spécifique à un utilisateur), il y a toujours possibilité d’ajouter une action de copie dans une séquence de tache MDT – Par exemple via une action [Install Appli] avec « cmd /c xcopy %DEPLOYROOT%\Sources C:\Users\Public\Desktop /e /s » ou un script plus élaboré. cf https://blog.ctglobalservices.com/os-deployment/mip/making-file-copy-easy/ – Les exemples ne manquent pas…
Bonne continuation
Bonjour,
Moi, ma problématique est de déployer l’image d’un windows 7 sur les nouveaux Pc dotés de processeurs 7ième et 8ième génération. Le déploiement avec MDT sur des machines plus anciennes marche très bien. Notre parc est encore à plus de 80% en Windows 7. La migration vers Windows 10 est envisagé lorsque tout nos programmes métiers tourneront sous Windows 10. Ce qui n’est pas encore le cas pour certain. Les séquences se font bien, mais au redémarrage de Windows, le pc se fige sans pouvoir reprendre la main.
Une idée pour utiliser MDT pour déploiement Windows 7 sur des PCs récents?
Merci d’avance
J-Jacques
Bonjour,
Ce constat est malheureusement de plus en plus fréquent (obsolescence programmée ? :-D) – Il faut en 1er lieu consulter le site du fabriquant mais aussi celui d’Intel qui fournit parfois des pistes (à défaut d’une solution).
Il m’est arrivé d’injecter des drivers dans les images WIM d’un W7 en mode offline (cf 6eGen Skylake – https://cnf1g.com/?p=1392) pour contourner certains blocages après le 1er reboot. Pour les CPU Next Gen, le discours Microsoft / Intel est plutôt dissuasif sur le support de W7… et pour W10 il est fortement conseillé de passer le BIOS en mode UEFI Natif / abandon du mode Legacy ou UEFI/CSM imposé par W7.
(Selon ce même principe, à défaut de mieux, j’installerais manuellement un PC 7-8Gen sous W7 avec ajout des drivers Chipset/System requis, puis si OK, extraction de ces drivers avec DrvBackup puis injection via DISM dans une WIM de référence afin que les périphériques « bas-niveau » soient reconnus au plus tôt. – Sans aucune garantie de résultat 🙁
A part croiser les doigts, je crains qu’il faille se résigner à garder W7 sur des anciens PC et synchroniser la migration W10 avec la mise à jour des matériels.
Bon courage
Bonjour,
super tuto, c’est une petite mine d’or 😀
je suis confronté au soucis suivant :
Update d’un w10Pro 1803 vers une 1809 Ent.
Lors d’une séquence de tâche d’update par défaut j’obtiens l’erreur suivante :
194-2147467259UPGRADE
une petite idée ?
Parce que là je sèche complétement.
Merci beaucoup.
Bonjour PandaSama,
Globalement j’utilise plutôt MDT pour installer ou migrer des OS vers W10 mais je n’ai pas vraiment d’expérience sur les upgrade de build W10 via MDT.
D’où sort ce message d’erreur « 194-2147467259UPGRADE » ? Ca ne ressemble à rien de ce que je connais, ni à un écran rouge tel que « FAILURE… » à part peut-être « -2147467259 » qui correspondrait au code retour générique d’une opération qui a échoué. Ce code est normalement suivi d’un autre code, genre 0x80004005 et d’autres informations (précieuses) sur le contexte
Sans plus de précision c’est pratiquement impossible de donner un avis. Les sources d’erreur sont innombrables et il faudrait analyser quelques journaux, tels que BDD.log pour cerner un peu mieux la question.
De plus, j’ai un doute sur la capacité de changer de SKU w10Pro vers w10Ent, via un simple upgrade, à moins de passer par une opération de package ICD.
Bonne continuation
Bonjour Christophe,
Tout d’abord un grand bravo pour ces magnifiques tutos.
J’ai réalisé une petite infra sous VirtualBox avec un AD/DNS/DHCP d’un coté, et MDT-WDS de l’autre.
– J’ai provisionné une ISO Windows Entreprise x64
– J’ai créé un Deployment Share avec quelques application, une Task sequence standard pour le déploiement, tout se passe bien jusque là, la partie déploiement se passe bien côté client.
– Ensutie, j’ai créé une Task Séquence Sysprep and Capture qui m’a généré un script litetouch.vbs, que je souhaite lancer depuis un poste client pour créer un poste de référence. Lorsque je lance le script, la task sequence débute et j’ai une erreur au Sysprep, je ne comrpends pas pourquoi. Le poste ne comprend que le compte Administrateur local avec mot de passe.
– Si je fais un déploiement et que je coche la capture pendant le déploiement, là par contre tout se passe bien. Il déploie, fait le sysprep, la capture et redémarre.
– Il n’y a que par le script vbs que ca ne passe pas. Auriez-vous une idée ?
j’utilise ADK 1903 avec son patch, Win 2016 avec WDS et MDT 8456.
Merci à vous,
Flitox.
Bonjour et merci pour ce commentaire
Difficile de prononcer un diagnostic sans plus d’information sur l’erreur et/ou les journaux. Lorsqu’on utilise une TS « de sysprep and capture », pour une capture directe, il faut s’assurer que la machine soit en Workgroup.
Pour une analyse plus approfondie, il faudra creuser du coté des logs …
Bonne continuation
Bonjour,
pour commencer, merci pour ce sujet riche d’informations,
j’ai des poste sous Windows 7 que je peux pas faire passer sur Windows 10, j’aimerai m’appuyer sur MDT et notamment la séquence de tâche Custom Task Sequence, jusqu’ici tous va bien sauf que j’aimerai ajouter une étape pour renommer les postes, exemple lorsque j’exécute litetouch.vbs j’aimerai afficher l’étape ComputerName s’affiche avant le choix des applications. est-ce que cela est possible ?
Merci
Bonjour mo,
Si le besoin est de mettre à jour des postes Windows 7 vers Windows 10, je pense qu’il faudrait plutôt suivre ce tuto https://www.it-connect.fr/mise-a-niveau-vers-windows-10-via-mdt-2013-update-1/ .
Ensuite, concernant l’affichage de l »étape ComputerName » dépendra des directives SKIP*… mentionnées dans CustomSettings.ini (cf §4 de ce tuto) et dans la chronologie d’une TS Installation classique, c’est avant les applications. – Normalement, durant un upgrade d’OS, le nom du PC ne change pas (probablement en raison des adhérences AD)
mais il y a toujours la possibilité de rajouter des actions dans une séquence de tache (la variable MDT qui porte le nom de la machine est « OSDComputerName », et perso, j’effectuerais le renommage à la toute fin de la TS de migration )
Bonne continuation
Merci Christophe,
Je pense que j’ai mal expliqué ma situation, je ne veux pas faire de Upgrade Windows 7 -> Windows 10 car mes postes ne sont pas compatible Windows 10.
J’aimerai juste mettre à jour les applications, pour cela:
1) J’ai fait un script qui désinstalle les programmes déjà installés
2) J’ai ajouter une séquence de tâche « Custom Task Sequence » avec une Task « Install Application » avec l’option Install multiple applications.
Sauf que lorsque j’exécute le litetouch.vbs manuellement et que je sélectionne « Custom Task Sequence » , il me propose de choisir les applications, et c’est à ce moment que je cherche un moyen pour saisir le nouveau nom du poste sachant que dans le customsetting j’ai bien SkipComputerName=No
Merci Christophe,
Je pense que j’ai mal expliqué ma situation, je ne veux pas faire de Upgrade Windows 7 -> Windows 10 car mes postes ne sont pas compatible Windows 10.
J’aimerai juste mettre à jour les applications, pour cela:
1) J’ai fait un script qui désinstalle les programmes déjà installés
2) J’ai ajouter une séquence de tâche « Custom Task Sequence » avec une Task « Install Application » avec l’option Install multiple applications.
Sauf que lorsque j’exécute le litetouch.vbs manuellement et que je sélectionne « Custom Task Sequence » , il me propose de choisir les applications, et c’est à ce moment que je cherche un moyen pour saisir le nouveau nom du poste sachant que dans le customsetting j’ai bien SkipComputerName=No
Effectivement, j’étais à coté mais j’ai aussi répondu un peu trop rapidement. En fait, le séquencement MDT repose sur 4 scénarios « New Computer », « Replace », « Refresh » et « Upgrade » qui déterminent ensuite le workflow des scripts et de la séquence des taches, ainsi que les variables qui en découlent. Bref, dans l’approche mentionnée dans la question, lorsqu’on lance « LiteTouch.vbs » à partir d’un système Windows actif, le « DeploymentType » est sur « Refresh », et le nom d’ordinateur n’est pas demandé dans ce cas. (Il conserve le nom existant).
En conséquence, je ne pense pas qu’il soit pertinent de modifier la variable %OSDComputerName% qui ne sera pas prise en compte et il faut peut être mieux considérer cette action de changement de nom comme une nouvelle application (au sens MDT), et donc un script « maison » à associer ensuite à votre séquence de tache. Malheureusement, il faudra également gérer l’interface de saisie manuelle du nouveau nom, car le wizard ne le prendra pas en compte.
Exemple de script : http://www.infralib.com/2012/12/how-to-prompt-for-computer-name-in-mdtsccm-task-sequence-osd/
Bonne continuation
Je m’en doutais bien, du coup j’ai fait un petit script qui m’affiche un formulaire et qui renomme le poste en validant.
Merci encore,
Très bien,
J’ajoute juste un petit exemple de code PS pour les autres lecteurs, car l’exemple précédent n’était pas vraiment flagrant 🙂
Add-Type -AssemblyName Microsoft.VisualBasic
$Rename = [Microsoft.VisualBasic.Interaction]::InputBox('Veuillez indiquer le nom du PC : ', 'Modification', "$env:COMPUTERNAME")
if ($Rename -ne $null -and $Rename -ne $env:COMPUTERNAME) {
Rename-Computer -ComputerName $env:COMPUTERNAME -NewName $NewName -PassThru # -Restart
}
Enregistrer ce code dans un .ps1 puis en créer une application MDT / ou ajouter une action « Run Powershell Script » – A positionner vers la fin de la séquence de taches dans ou après la section « State Restore ». Ajouter une action « Restart Computer » le cas échéant.
Bonne continuation
Bonjour,
J’ai quelques questions:
1) Depuis Mdt2013 update 2 (janvier 2015), il n’y a pas eu de mises à jour ou de nouvelle version, est-ce que ça sent la fin de MDT??
2) Mdt permet de deployer le système et les applications, faut-il se prendre la tête à faire une image puis une capture ? Ou alors se contenter de l’image de Microsoft et pousser les applications après le déploiement du système ?
3) peux-tu nous donner des méthodes et bonnes pratiques pour déployer windows 10 à jour, des logiciels, etc.
4) au sujet du WinPE, faut il télécharger des pilotes spécifiques pour le WinPE ??car si on a plusieurs modèles, l’image de boot risque d’être lourde.
Désolé pour toutes ces question , et merci encore pour tes cours.
Bonjour,
1 – Mdt2013 update 2 est la dernière version qui porte un label – depuis le MDT continue d’évoluer mais on n’évoque que sa version, par exemple 8456 et il ne faut surtout pas oublier l’ADK en fonction de l’OS déployé mais les fondamentaux restent les mêmes.
2 – La notion de capture est très relative et doit faire gagner du temps si les applis ou composants intégrés ont un long cycle de vie. Dans le cas contraire, il est plus intéressant de partir de l’image WIM de MS. (surtout depuis W10 qui change tous les 6 mois)
3 – Pour avoir un parc « uptodate » , MDT n’est pas la solution, car il se contente de séquencer / automatiser un ensemble d’opérations (taches) lors d’une « primo-installation ». A moins de remasteriser régulièrement les postes (en mode refresh), il vaut mieux appuyer sur WSUS ou SCCM si on a un minimum de budget.
4 – Pour un noyau WinPE, comme évoqué dans plusieurs autres articles, seuls les pilotes réseau, disque et chipset sont critiques et important (ces classes peuvent être présélectionnées par MDT) . Il reste qu’un noyau WinPE10 pèse souvent autour de 400/500Mo mais d’expérience, ce ne sont pas les pilotes précités qui coutent cher. Généralement, les drivers video sont très gourmands et n’offrent pas/peu d’intérêt sous WinPE.
Bonne continuation
Bonjour, Monsieur Christophe
J’ai suivi les procédures de déploiement mais malheureusement
je reçois ce « wiizard error a connection to the deployment share could not be made. coonection ok. possible cause invalid credential
message chaque fois;
j’ai changé le mot de passe mais en vain
merci de m’aider
Bonjour,
Ce n’est probablement pas MDT qui est en cause. Il faut vérifier la validité de la chaine de connexion à partir du client LiteTouch.
– [F8] puis « ipconfig » pour vérifier l’adresse IP
– si NOK, vérifier le driver de carte réseau et/ou « wpeutil initializenetwork »
– faire un ping du serveur MDT, puis tenter une connexion (cf bootstrap.ini)
« net use z: \\IPServer\DeploymentShare$ /user:IPServer\User Password »
Bon courage
merci à vous Monsieur
Bonjour,
J’utilise MDT et je ne comprends pas pourquoi le PC préparé garde le mappage du serveur MDT…tout se passe bien, s’installe correctement, mais impossible de supprimer le mappage au serveur sur le PC…
Auriez vous une piste ?
Merci,
Bonjour,
Si le mappage du MDT demeure à la fin d’un déploiement (à l’instar de l’autologon Administrateur), c’est probablement parce qu’il y a une anomalie dans le scénario TS. Si tout ce passe bien, il ne doit plus y avoir de dossier MININT, ni d’autologon et sauf masquage, la page du « finalsummary » doit s’afficher sur fond blanc (ou jaune au pire).
Il faut essayer de trouver l’origine dans les journaux. D’expérience, j’ai eu ce genre de cas suite à un reboot intempestif dans le processus d’installation d’une application. Lorsqu’un reboot survient sans qu’il soit traité par le MDT, on peut aboutir à ce genre de résultat mais ce n’est surement pas l’unique raison. Dans tous les cas, la persistance d’un mappage MDT est anormale (sauf si cela fait partie de la capture, ou d’un profil mal nettoyé)
Bonne continuation
Bonjour ,
d’abord merci beaucoup pour cet excellent tuto
j’ai un petit soucis lors de déploiement du système sur une machine client (il m’affiche toutes les étapes d’installations) , sachant que ces étapes sont configurées dans le fichier CS.ini , il me semble que le fichier CS.ini ne fonctionne pas .
Voici mes paramètres CS.ini :
[Settings]
Priority=Default
Properties=MyCustomProperty
[Default]
_SMSTSOrgName=informatique
OSInstall=YES
UserDataLocation=AUTO
TimeZoneName=Eastern Standard Time
KeyboardLocale=0C0C:00001009
UserLocale=fr-CA
UILanguage=fr-CA
JoinDomain=Domaine
DomainAdmin=domaine\user
DomainAdminPassword=XXXXX
AdminPassword=XXXXX
UserExit=MDTcustomGG.vbs
OSDComputerName=#nomPC(« %IPAddress% », »%IsVM% »)#
MachineObjectOU=#nomOU(« %OSDComputerName% »)#
USMTMigFiles001=MigApp.xml
USMTMigFiles002=MigUser.xml
SLSHARE=\\server\Logs$
SLShareDynamicLogging=\\server\Logs$
HideShell=YES
ApplyGPOPack=NO
WSUSServer=http://server:8530
OverrideProductKey=XXXXXXXXXXXXXXXXXXXXXX
SkipAppsOnUpgrade=NO
SkipAdminPassword =YES
SkipProductKey =YES
SkipComputerName =YES
SkipDomainMembership=YES
SkipUserData =YES
SkipLocaleSelection =YES
SkipTaskSequence =NO
SkipTimeZone=YES
SkipApplications=NO
SkipBitLocker=YES
SkipSummary =YES
SkipCapture =YES
SkipFinalSummary =NO
EventService=http://server:9800
Merci de m’aider.
Bonjour Abdou,
A première vue, ce CS.ini semble correct. Mon 1er conseil lorsque ça ne marche pas, c’est de revenir aux bases, avec un CS.ini par défaut et/ou simplifié (au besoin, passer les lignes en commentaire en mettant un « ; » au début) puis procéder pas à pas aux modifications souhaitées (en gardant tjs une version n-1 fonctionnelle du CS.ini (et bootstrap.ini 😉 ).
A l’initialisation du client LiteTouch, on doit voir apparaitre « Processing Bootstrap puis CustomSettings… ». Il faut aussi regarder les log et parfois l’encodage des fichiers .ini (UTF8).
N’hésitez pas à nous faire un retour sur vos investigations pour en faire bénéficier la communauté 😀
Bonne continuation
Bonjour, super cours qui m’a été bien utile, merci.
Je voudrai savoir s’il est possible d’avoir des paramètres spéciaux par TaskSequence dans le CS.ini ?
Je voudrai que dans mon deployment share il y ai une tache de séquence pour capturer les images et une autre les déployer, et que chaque séquence de tache est ses propre paramétres.
Une idée ?
Merci,
Bonjour Mathis,
J’ignore ce qui se cache derrière « Paramètres spéciaux » mais MDT gère des « propriétés » dont les plus courantes sont évoquées ici.
Une séquence des taches dispose par définition de ses propres paramètres. Les valeurs « communes » sont définies dans la section [Default], et les valeurs « spécifiques » définies ou redéfinies dans une autre section telle que [MACaddress] complètent ou remplacent les valeurs. Ensuite, toute séquence de taches déclarée dans un MDT apparait et est proposée au chargement du client LTI. (cf §5) Au début, il vaut mieux ne pas positionner les options « skip* » afin de vérifier les étapes et leurs valeurs.
Je n’ai peut être pas compris la question, mais selon moi, il suffit d’adapter sensiblement l’exemple de cet article.
Bonne continuation
Bonjour Christophe,
Super tuto dont je me suis beaucoup inspiré (avec d’autres), je suis arrivé grâce à vous tous à créer une installation complète avec différenciation dans le Custom Setting de la TS (Une qui installe des postes en Workgroup pour les dons aux écoles et l’autre en domaine pour l’entreprise), tout fonctionne à merveille.
Je me frotte actuellement à l’installation des rôles via la TS (Add Roles and Features) et je n’arrive pas à faire installer le Framework 3.5 via cette option. D’autant que j’aimerai m’en servir plus tard pour l’installation des serveurs via MDT pour les rôles.
Le massage d’erreur est : Le chemin réseau n’a pas été trouvé alors que j’indique bien dans le Custom Setting la source : WindowsSource= »\\ServeurMDT\ProductionShare$\Scripts\Sources ».
J’ai pourtant bien relancé l’update pour la prise en compte du CS.
Avez vous des recommendations concernant la mai=nip sur l’ajout de rôles dans les TaskSéquence ?
Là, j’avou, je sèche.
Merci par avance.
Dominique.
Bonjour Dominique,
Ravi que mes tutos soient utiles 😉 Concernant l’installation du Framework DotNET 3.5, je n’ai plus souvenir que ça posait problème avec la tache « Add roles/Features » de MDT2013 ? 😮 . Il faut bien vérifier que le chemin indiqué contient les packages .CAB (= ISO\Sources\SXS) et pas dans un sous-dossier. Sinon, on peut aussi utiliser l’ancienne technique en créant une appli MDT avec un .bat, ou plus rapidement une tache « Run command » contenant
DISM.exe /online /enable-feature /featurename:NetFX3 /All /Source:”%deployroot%\Operating Systems\Windows 10-20H2 x64 PRO\Sources\SXS” /LimitAccess
Normalement ça doit passer sans souci.
Bonne continuation
Bonjour Christophe,
Merci pour cette réponse rapide, la tache semble tronquer le chemin UNC, si je rajoute une lettre sans les \\ ca semble passer mais reste en erreur.
En DISM l’install bloque à 5.9% alors qu’avant cela fonctionnait très bien !
Des updates peuvent elles être la cause d’près vous ?, l’installation est toujours en erreur, ca passe sur un master plus ancien, aurait-je un problème avec le WSUS (Il me semble que ca à commencé quand j’ai ajouté la ligne WsusServer=http://####wsus:port/ dans le CS.
Ca doit quand même bien arriver à d’autres ce problème.
Bonne fin de journée.
Hello Christophe,
Ne cherchez plus, j’ai trouvé sur un forum par hasard une fille qui parlait d’un problème avec le WSUS (J’était pas loin !), en passant la valeur de registre à 0 de [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU]
« UseWUServer »=dword:00000000, le Framework va chercher online dans les updates W10, c’est bizarre mais en tous cas cela à le mérite de fonctionner, si ca peux aider.
Bonne soirée.
Effectivement, c’était la piste que j’allais aussi proposer d’explorer suite à l’indication du second post.
Pour ma part, je conserve toujours une copie d’un CS.ini « fonctionnel ». En cas de problème, il est plus facile de comparer les changements et/ou faire un rollback 😉
Merci pour ce retour qui pourra servir à la communauté 🙂
Bonne continuation
Bonjour Christophe,
Je reviens vers toi car j’ai un pb sur lequel je planche depuis un moment, en effet depuis le passage à l’ADK 2022 (10.1.20348.1) sur serveur 2022 avec déplacement du Deployment Share et ce sans changer aucunement d’aucune façon les Custom Settings et Bootsrap.ini le DéploymentShare me refuse l’accès au partage \\SERVER2022\ProductionShare$\ et ce sur 2 serveurs 2022 (j’en ai recréé un de test pour voir), il ouvre systématiquement une fenêtré entre le Bootstrap et le CS (ce qui ne se produisait pas avant) me demandant le chemin de partage (fenêtre « Specify witch deployment share to use : X:\Deploy) et si je le rentre à la main le processus se termine sans soucis, cela à chaque machine sauf avec les machines virtuelles (Une histoire de vitesse ?), l’admin réseau ne comprends pas du tout car tout est sur le même réseau, moi non plus et je ne compte pas retourner aux anciens ADK, aurait-tu une idée car la je sèche…
Je te remercie d’avance pour ton aide.
Dominique.
Bonjour,
J’ai un soucis avec l’automatisation de la page User Credentials, j’ai vu que la page devrait être automatiquement masquée si la connexion était bonne mais cela ne s’automatise pas alors que manuellement je n’ai pas de soucis, j’ai bien mis à jour les modifications et les lignes de commandes dans le bootstrap.ini sont :
UserID=ClientPXE
UserPassword=*******
userDomain=SRV-WDS
Merci de m’aider si vous avez des idées.