Juste un petit post sur un travail en cours…l’automatisation complète de l’installation d’un point de déploiement MDT et son intégration dans WDS. Je reviendrai sur le sujet quand j’aurai fini tous mes scripts.
Alors, l’idée étant d’automatiser au maximum l’installation des composant et des sources sur un nouveau serveur afin d’agiliser les mises en production de nouveaux points de déploiement, il nous faut tout d’abord organiser les sources et binaires selon un format standardisé.
Voila à quoi ressemble mon arborescence sur mon disque externe:
J’ai donc un répertoire ADK contenant les sources ADK, un répertoire MDT contenant le binaire MDT, et les répertoires OS, DRIVERS et APPLICATIONS, contenant des sous répertoires contenant chaque item que je souhaite intégrer.
LES APPLICATIONS:
Une fois vos sources copiées dans les répertoires respectifs, je crée un fichier CSV pour y spécifier pour chaque application les informations nécessaires à son intégration dans MDT (description, éditeur, version, ligne de commande d’installation silencieuse…) en suivant l’exemple ci dessous. Ces informations seront utilisées par le bout de script suivant pour les ajouter une fois mon Deployment Share créé.
$APPList=IMPORT-CSV S:\CSV\MDT_Apps.csv
Foreach ($App in $APPlist) {
import-MDTApplication –path $App.ApplicationFolder -enable « True » –Name $App.DescriptiveName –ShortName $App.Shortname –Version $App.Version –Publisher $App.Publisher –Language $App.Language –CommandLine $App.CommandLine –WorkingDirectory $App.WorkingDirectory –ApplicationSourcePath $App.SourceFolder –DestinationFolder $App.DestinationFolder –Verbose
}
Exemple de fichier MDT_Apps.CSV pour Adobe Acrobat:
« ApplicationFolder », »DescriptiveName », »ShortName », »Version »,Publisher », »Language », »CommandLine », »WorkingDirectory », »SourceFolder », »DestinationFolder »
DS002:\Applications, »Adobe Acrobat Reader », »Acrobat Reader », »FR », »Adobe », »Klingon », »msiexec.exe /I AcroRead.msi /qb /norestart », ».\Applications\Adobe Acrobat Reader », »S:\Applications\Adobe_Reader », »Adobe Acrobat Reader »
Il faut bien entendu formater les lignes et champs et tester tout cela avant tout…
LES DRIVERS:
Je créée un répertoire par modèle de PC dans lequel je dépose les drivers (au format natif, décompressés, ou au format CAB si disponible, pour Dell par exemple). Je nomme ce répertoire avec le Format “Make and Model” (exemple: ASUS N53SV, DELL E4310).
Ce répertoire sera parcouru récursivement pour intégrer tous les drivers existants.
LES OS:
Ici même chose, un sous répertoire par OS, en essayant de formaliser sur un nom court la description de chaque OS (W7x64PRO, W8x64ENT, et il suffit ensuite de copier/coller les sources depuis le DVD.
LE SCRIPT:
Y’a plus qu’à …
Alors encore une fois, soyez indulgents je suis débutant en PowerShell, et malgrés le fait que plusieurs morceaux de scripts viennent d’internet (blogs, tutoriels PS, etc.) je fais de mon mieux pour intégrer tout ça proprement…mais il s’agit d’un “Work in progress”, pas d’un script finalisé, et je vous invite à le tester comme tel, merci de vos retours/corrections/optimisation si vous en avez!!
#S: est la lettre d’accés à mon disque externe, contenant les repertoire et sources pour mon point de déploiement
#S:\OS\chaque dvd extrait dans son répertoire
#S:\Applications\Cahque application dans son répertoire
#S:\Drivers\tous les drivers sous ce répertoire (on peut avoir des sous répertoires aucun impact, ils seront explorés)
#S:\MDT\le MSI de MDT (ici 2012U1b)
#S:\ADK\ les sources de l’ADK (Ici ADK8)
#S:\CSVs\les fichiers CSV pour l’importation des Applications, Drivers, etc…
#S:\TaskSequences\les dossiers de chaque séquence de taches avec leurs propre XML
#Pleins de sources trouvées sur Internet, site MS Repository et autres blog,
#le tout retouché mais un grand merci à tous les bons scripteurs PowerShell du net
#pour l’inspiration, les exemples et la mise à dispo des commandlets!
#Pierre JOUBERT, RED KAFFE, SARL#Installation MDT
Start-Process -FilePath msiexec -ArgumentList /i, « S:\MDT\MicrosoftDeploymentToolkit2012_x64.msi », /qb -Wait#installtion des composants ADK
Start-Process -FilePath « S:\ADK\ADKsetup.exe » -ArgumentList » /features OptionId.DeploymentTools OptionId.WindowsPreinstallationEnvironment OptionId.UserStateMigrationTool /quiet /norestart » -wait -PassThru#Chargement module BDD PowerShell
Add-PSSnapIn Microsoft.BDD.PSSnapIn -ErrorAction SilentlyContinue# Add-PSSnapIn Microsoft.BDD.PSSnapIn
Import-Module « C:\Program Files\Microsoft Deployment Toolkit\bin\MicrosoftDeploymentToolkit.psd1 »
$ComputerName=$ENV:Computername
$DSFolder= »C:\DeploymentShare »
$DSShareName= »DeploymentShare$ »
$DSDescription= »DeploymentShare »# Make MDT Directory
mkdir $DSFolder# Create MDT Shared Folder
$Type = 0
$objWMI = [wmiClass] ‘Win32_share’
$objWMI.create($DSFolder, $DSShareName, $Type)# créé le partage de DeploymentShare
New-PSDrive -Name « DS002 » -PSProvider « MDTProvider » -Root $DSFolder -Description $DSDescription -NetworkPath « \\$ComputerName\DeploymentShare$ » -Verbose | add-MDTPersistentDrive -Verbose#Ajoute les OS en se basant sur le répertoire S:\OS, chaque sous répertoire nommera l’OS dans MDT
$items = Get-ChildItem -Path « S:\OS »
# enumerate the items array
foreach ($item in $items)
{
# if the item is a directory, then process it.
if ($item.Attributes -eq « Directory »)
{
import-mdtoperatingsystem -path DS002:\Operating Systems » -SourcePath « S:\OS\$item » -DestinationFolder « $item » -Verbose
}
}#Add the drivers
import-mdtdriver -path « DS002:\Out-of-Box Drivers » -SourcePath « S:\Drivers\ » -ImportDuplicates -Verbose#Add the Applications
$APPList=IMPORT-CSV S:\CSV\MDTCommonApps.csv
Foreach ($App in $APPList) {
import-MDTApplication –path « DS002:\Applications » -enable « True » –Name $App.DescriptiveName –ShortName $App.Shortname –Version $App.Version –Publisher $App.Publisher –Language $App.Language –CommandLine $App.CommandLine –WorkingDirectory $App.WorkingDirectory –ApplicationSourcePath $App.SourceFolder –DestinationFolder $App.DestinationFolder –Verbose
}#Update the Deployment Share
update-MDTDeploymentShare -path « DS002: » –Verbose# Update WDS boot images from MDT DS002
wdsutil /Verbose /Progress /Add-Image /ImageFile:C:\DeploymentShare\Boot\LiteTouchPE_x64.wim /ImageType:Boot
Bon Scripting à tous et à toutes,
Bravo Pierre !!