lundi 4 novembre 2013

MDT 2012/2013 : Gérez les images de plus de 4 GO en USB UEFI

Abstract_II_Typol_2_0_by_paradoxchild

Le sujet est sur la table depuis plus d’un an… je l’avais déjà évoqué dans mon billet sur l’ UEFI, pourtant du côté de Microsoft, aucune solution n’est en vue. Officiellement , il à été décidé que le bug ne serait pas fixé avant la prochaine version d'MDT… Donc, tenez vous le pour dit :

Si vous souhaitiez installer Windows 7 ou 8.1 à partir d’une clé USB sur un PC en UEFI et que votre image WIM fait plus de 4 GO (elle ne peux donc plus tenir sur votre clé formatée en FAT32 qui ne supporte pas une telle taille de fichier)… patientez jusqu’a l’année prochaine… ou lisez la suite de ce billet…

 

Prérequis :

  • MDT 2012 U1 ou MDT 2013.
  • Un média amovible  supportant le boot en UEFI (donc formaté en FAT32).
  • Une image WIM de votre OS de plus de 4Go (un sysprep d’un Windows 8.1 x64 avec Office 2013, .Net 3.5 et Java est suffisant pour dépasser cette taille)
  • L’ outils  MDT Slasher est le script LTIApply.wsf à télécharger ici.
  • Si vous n’êtes pas sous Windows 8.1 vous aurez également besoin de Powershell 4 

 

 

Installation :

Remplacez le script LTIApply.wsf situé dans le répertoire scripts de votre Deployment Share par celui fourni avec l’archive. c’est tout ce qu’il y’a à faire pour la partie MDT.

changer la politique d’exécution des scripts powershell en ouvrant une console Powershell avec droit d’admin et en tapant :

set-executionpolicy -ExecutionPolicy Unrestricted

 

Utilisation :

Lancez MDT-Slasher.ps1. Ce script-application va vous permettre d’importer des images WIM de plus de 4 Go dans MDT en les découpant en parties plus petites. Il permet également de découper des images qui feraient déjà partie d’un Deployment Share qui se trouverai sur un partage réseau.

2013-11-01_19h31_54

Afin de pouvoir travailler, indiquez tout d’abord à MDT slasher l’emplacement de votre Deployment Share :

2013-11-01_19h35_22

Vous pourrez alors choisir parmi les images du Deployment Share celle qui a besoin d’être découpée :

2013-11-01_19h55_42

Si l’image que vous souhaitez découper ne fait pas partie de celle apparaissant dans la listbox, spécifiez directement le chemin de votre image WIM ainsi qu’un nom de répertoire à créer pour l’importation dans la partie de l’interface se trouvant juste en dessous :

2013-11-01_19h37_52

Une fois l’image choisie, appuyiez sur le bouton Split pour démarrer l’opération.

2013-11-03_08h41_24_thumb[1]

Lorsque l’import est terminé, vous pouvez ouvrir MDT afin de vérifier que votre image a bien été ajouté au répertoire Operating System :

image

Enfin, une verification du Deployment Share permettra  de constater que l’image WIM à bien été découpée et que les parties SWM sont également bien présentes :

2013-11-01_20h07_54

Voila, Tout est prêt. Votre image a été découpée, importée et son nouveau format est entièrement pris en charge par MDT. Vous pouvez maintenant utiliser ces images dans n’importe quelle Task Sequence en toute tranquillité.

 

Behind The Scene :

Quelques explications sur le “comment ça marche” : DISM permet de découper les images WIM, mais il sait aussi appliquer ces images découpées. MDT sait importer le premier tronçon de ces images découpées pourvu qu’il ait une extension en .WIM. (les autres parties en .SWM doivent être copiés à la main). Pour le reste, toute la magie réside dans  la modification (moins de 10 lignes) du script LTIApply.wsf en permettant à celui-ci d’utiliser DISM à la place d’ImageX lorsqu’il doit traiter des images SWM !

Phew… Simply state of the art !!!…

lundi 29 juillet 2013

MDT 2012/2013 : Bloquez L’exécution des GPO.

flinsectoid

Ce cas va forcement vous arriver : vous devez déployer une machine qui va intégrer un domaine tout en retardant l’application des GPO afin de ne pas compromettre votre déploiement !!...

La solution (inspirée par Steven Yarnot, merci à lui !) consiste à désactiver le service GpSvc (Group Policy Service) le temps de l’installation et à le réactiver à la fin de celle-ci. Comme ce service ne peut pas être désactivé même avec des droits d’admin, nous allons nous aider de PsExec afin d’obtenir des privilèges système.

Prérequis

 

Installation

Copiez PsExec dans les répertoires ..\Tools\x86 et ..\Tools\x64 de votre DeploymentShare.

Puis dans MDT ouvrez votre Task Sequence et ajoutez le script ZTIGPOBlocker.wsf juste après l’étape Gather local only dans la section State Restore.

La commande à saisir est Cscript.exe "%SCRIPTROOT%\ZTIGPOBlocker.wsf" /on

image

Nous allons également ajouter l’étape de réactivation des GPO en fin de déploiement : Toujours dans la section State Restore juste après l’étape Apply Local GPO Package ajoutez la commande  Cscript.exe "%SCRIPTROOT%\ZTIGPOBlocker.wsf" /off comme décrit sur l’image ci-dessous :

image

Votre bloqueur de GPO est prêt !

Note : Durant le déploiement, si le script fonctionne correctement, vous serez “poppé” par un message système non bloquant vous rappelant que les GPO ne peuvent pas s’appliquer:

NoGPO-2013-07-16_14h58_07

mardi 9 juillet 2013

MDT 2012/2013 : Installez des composants Active Setup

453692818_f75f24bd32_z

Active setup, vous connaissez ? Cette fonctionnalité fait partie de la technologie de package MSI et permet d’installer des applications en “contexte utilisateur”. Dit comme ça, cela  peut faire rêver, mais ne vous y trompez pas, vous n’installerez que des composants qui ne requièrent aucun droit  d’administration. Pour faire cour : pas de modification de la basse de registre sur la partie HKLM, pas de DISM, pas d’écriture dans %ProgramFile% ou dans %WinDir%, pas de script Powershell, bref uniquement des choses qui s’exécutent sans droits d’admin. (tout les détails ici).

Quand j’aurai ajouté qu’il s’agit d’un work arround hautement déconseillé et que vous devez lui préférer les GPO de domaine, vous vous demanderez surement quel est l’intérêt d’utiliser cette ‘flute’ !!!

La réponse est simple : il y a des cas ou vous ne pourrez pas faire autrement ! Donc si vous avez besoin de cette technologie pour un déploiement MDT, voici comment procéder :

Installation

Pour ajouter cette fonctionnalité dans MDT, téléchargez le script OEMCopy de Michael Niehaus ainsi que mon script ZTIPopulateActiveSetup.wsf

Copiez les deux scripts dans le répertoire Scripts de votre Deployment Share.

Dans votre Task Sequence ajoutez une commande(Add>General>New command Line) juste après la tâche Install Operating System (section Install) et ajoutez la commande cscript.exe "%SCRIPTROOT%\CopyOEM.wsf"  comme décrit sur cette capture :

2013-03-27_07h33_36

Ajoutez une deuxième commande dans la sous section Custom Tasks et saisissez la commande cscript.exe "%SCRIPTROOT%\ZTIPopulateActiveSetup.wsf"

image

Il ne vous reste plus qu’à copier vos éléments à exécuter en contexte utilisateur (et au risque de me répéter, cela veut dire : rien qui ne fasse crier l’UAC !) en les mettant dans le répertoire $OEM$ qui se trouve dans votre Deployment Share :

Créez-y une arborescence de répertoire comme suit : $OEM$\ProgrammData\Active-Setup et mettez y les types de fichiers suivants :

.hta, .exe, .reg, .cmd, .bat
.wsf, .vbs, .js (les scripts s’exécutent par défaut avec Cscript, ajoutez un “W” majuscule à la fin du nom du fichier pour qu’ils s’exécutent avec Wscript).

vous pouvez contrôler ce qui à été crée après Déploiement en vérifiant la clé de registre HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Active Setup\Installed Components toutes les nouvelles entrées commencent par ZTIMDT :

Capture