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