Table des matières

Microsoft Deployment Toolkit (MDT)

Installation basée sur MDT v8456

Installer adksetup.exe :
Puis
Installer adkwinpesetup.exe :
Puis
Installer Microsoft Shared Computer Toolkit 2013 (8456) - (MDT)
https://docs.microsoft.com/en-us/mem/configmgr/mdt/release-notes
Puis
Installer Le correctif de bug Window System Image Manager (WSIM)
https://docs.microsoft.com/en-us/windows-hardware/get-started/what-s-new-in-kits-and-tools#windows-system-image-manager-known-issue
https://docs.microsoft.com/en-us/windows-hardware/get-started/what-s-new-in-kits-and-tools

v2004 - 20H2
https://oofhours.com/2020/06/03/mdt-build-8456-needs-an-update-for-windows-10-2004/
https://microsofttouch.fr/default/b/js/posts/mdt-une-mise-a-jour-de-mdt-8456-pour-supporter-l-adk-de-windows-10-2004#:~:text=Microsoft%20vient%20de%20publier%20un,d%C3%A9ploiement%20de%20syst%C3%A8mes%20d'exploitation.
https://gal.vin/2020/03/25/build-and-capture-windows-10-2004-20h1-reference-image/
https://www.youtube.com/watch?v=-hWQbYToDjA
https://askme4tech.com/how-prepare-mdt-place-upgrade-windows-10-2004
https://docs.microsoft.com/fr-fr/windows-hardware/get-started/adk-install
https://docs.microsoft.com/fr-fr/windows/deployment/deploy-whats-new

Win11 https://oofhours.com/2021/07/06/using-the-windows-11-adk-with-mdt/

Ouvrir Deployment Workbench


MDT Wizard Studio
A télécharger pour éditer les fenêtres de déploiement future :
https://github.com/DeploymentArtist/SWP1

Dossier Reseau

Ces répertoires contiennent les informations suivantes:

$OEM$: Ce répertoire est utilisé pour certaines installation sans assistance (unattended), concernant les anciens systèmes d’exploitations (Windows XP/2003 par exemple)
Applications: Ce répertoire contiendra les sources des installations des applications que vous ajouterez à votre installation.
Boot: Ce répertoire contient les images WIM et ISO WinPE de démarrage, c’est ici qu’il faudra récupérer le CD de démarrage permettant d’accéder au partage depuis le poste à installer
Captures: Ce répertoire est autorisé en écriture et recevra les captures effectuée par MDT (ce sujet sera abordé dans un article ultérieur)
Control: Ce répertoire contient tous les fichiers de configuration utilisé pour personnalisé votre installation, c’est principalement un ensemble de fichier XM (d’où la nécessité d’avoir MSXML installé sur le poste)
Operating Systems: Il contient toutes les sources d’installation des systèmes d’exploitations que vous aurez ajouté à MDT.
Out-of-Box Drivers: A l’intérieur de ce répertoires sont copié tous les pilotes ajouté à MDT et utilisé par votre installation.
Packages: Ce répertoire est utilisé pour stocké les patchs de sécurité et les packs de langues que vous aurez ajouté dans MDT.
Scripts: Ce répertoire est le « noyau » d’exécution de MDT, il contient tous les scripts exécuté lors du déploiement.
Tools: Ce répertoire contient les outils supplémentaire (comme USMT) ajouté à MDT.
Servicing:
Templates:
USMT: Ce répertoire n’a pas d’utilité dans notre cas. Il est utilisé pour gérer USMT (User State Migration Tool) qui permet la conservation d’une partie ou de tout les paramètres utilisateur. Comme nous sommes en train de réaliser une installation de Windows, notre cas ne s’applique pas.

Ajout d’un système d’exploitation

Type image SE importé

Dans le monde du déploiement de Windows, on peut dire qu’il existe 3 types d’images :


Personnellement, j’utilise avec MDT des images de type Thin et je pousse l’installation des logiciels et mises à jour Windows en utilisant des tâches dans la séquence de déploiement. Cette solution permet de mettre à jour régulièrement l’image Windows et les logiciels sans avoir besoin de refaire une image de référence tous les ans par exemple.

Convertir install.esd to install.wim

cd D:
dism /Get-WimInfo /WimFile:D:/sources/install.esd
dism /export-image /SourceImageFile:D:\sources\install.esd /SourceIndex:6 /DestinationImageFile:C:\sources\install.wim /Compress:max /CheckIntegrity

Il ne vous reste plus qu'à l'intégrer à votre WDS ou a l'utiliser pour MDT et à déployer Windows !

Import Image Win10 dans Operating System

Windows_10_Pro_FR_x64_1903
ou
Windows_10_Pro_FR_x64_1909
ect ...

Ajout du SE

Dans l’assistance, vous avez trois choix:

WinPE ISO

Ajout de Powershell et addons dans WinPE ISO

Extraire les fichiers suivantes situés dans install.wim de ISO install Win10 :

BCP47Langs.dll
BCP47mrm.dll

Puis copier dans \Windows\system32\ de WinPE.wim en suivant la procédure http://wiki.srvserveur.com/prive/windows/microsoft-deployment-toolkit#modif_winpe_iso

BCP47Langs.dll
BCP47mrm.dll

Modif WinPE ISO

https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/winpe-mount-and-customize

Copie de ISO WinPE :

Montage de ISO WinPE :

Dism /Mount-Image /ImageFile:"C:\Temp\Export\winpe.wim" /index:1 /MountDir:"C:\Temp\Mount\Current"

Export de ISO WinPE modifié :

Dism /Unmount-Image /MountDir:"C:\Temp\Mount\Current" /commit

Création USB WinPE (ISO)

http://www.msnloop.com/creer-une-cle-uefi-pour-mdt-2013/
L'utilisation de RUFUS sera le meilleur moyen et le plus rapide
Mode GPT et UEFI

Drivers Virtio ISO

NetKVM/ - Virtio network driver
viostor/ - Virtio block driver
vioscsi/ - Virtio Small Computer System Interface (SCSI) driver
viorng/ - Virtio RNG driver
vioser/ - Virtio serial driver
Balloon/ - Virtio memory balloon driver
qxl/ - QXL graphics driver for Windows 7 and earlier. (build virtio-win-0.1.103-1 and later)
qxldod/ - QXL graphics driver for Windows 8 and later. (build virtio-win-0.1.103-2 and later)
pvpanic/ - QEMU pvpanic device driver (build virtio-win-0.1.103-2 and later)
guest-agent/ - QEMU Guest Agent 32bit and 64bit MSI installers
qemupciserial/ - QEMU PCI serial device driver
*.vfd VFD floppy images for using during install of Windows XP

Ajout/Modification fenêtre de déploiement

Outils

Outils permettant le test et la modification des fenêtres de déploiement :
https://www.supinfo.com/articles/single/5884-microsoft-deployment-toolkit
Partie Modification des variables dynamiques

MDT Wizard Studio
A télécharger pour éditer les fenêtres de déploiement :
https://github.com/DeploymentArtist/SWP1

Ajouter CHOIX DU DISK 1ere Possibilités avec fichier vbs

(Méthode choisie pour mon MDT grâce à son intégration parfaite dans les fenêtres de déploiement WinPE)

https://social.technet.microsoft.com/Forums/en-US/7f8a272c-6306-4361-8b54-01837f25362e/add-custom-pane-to-select-disk-in-mdt-wizard?forum=mdt

Aperçu de la fenêtre du choix du disk :

Editer le fichier “DeployWiz_Definition_ENU.xml” situé dans :

\\192.168.10.30\DeploymentShare$\Scripts\

Ajouter le code suivant :

<Pane id="TargetDisk" reference="DeployWiz_TargetDisk.xml">
</Pane>

Créer le fichier “DeployWiz_TargetDisk.vbs” :

DeployWiz_TargetDisk.vbs
' // ***************************************************************************
' // File:      DeployWiz_TargetDisk.vbs
' //
' // Version:   6.3.8456.1000
' //
' // Purpose:   Script methods used for the Target Disk UI
' //
' // ***************************************************************************

 
'This function is used to populate the select box
Function Disk_Initialization
Dim oOption2
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colDisks = objWMIService.ExecQuery ("SELECT * FROM Win32_DiskDrive")
 
For each objDisks in colDisks
Set oOption2 = document.createElement("OPTION")
 
oOption2.Text = objDisks.Index
oOption2.Value = objDisks.Index
	TargetDisk.Add(oOption2)
   'Wscript.Echo "Volume: "& vbTab &  objQuota.Index
   'Wscript.Echo "User: "& vbTab &  objQuota.Model
Next
 
 
End function
 
'This function is used to convert bytes into useful readable size
Function ConvertSize(byteSize)
	dim Size
	Size = byteSize
 
	Do While InStr(Size,",") 'Remove commas from size
		CommaLocate = InStr(Size,",")
		Size = Mid(Size,1,CommaLocate - 1) & _
		Mid(Size,CommaLocate + 1,Len(Size) - CommaLocate)
	Loop
 
	Suffix = " Bytes"
	If Size >= 1024 Then suffix = " KB"
	If Size >= 1048576 Then suffix = " MB"
	If Size >= 1073741824 Then suffix = " GB"
	If Size >= 1099511627776 Then suffix = " TB"
 
	Select Case Suffix
		Case " KB" Size = Round(Size / 1024, 1)
		Case " MB" Size = Round(Size / 1048576, 1)
		Case " GB" Size = Round(Size / 1073741824, 1)
		Case " TB" Size = Round(Size / 1099511627776, 1)
	End Select
 
	ConvertSize = Size & Suffix
End Function
 
'this function is used to show disk info about a selected disk
Function ShowDiskInfo
 
strSelectedIndex = ""
' Check all the Options of the ListBox
For i = 0 to (TargetDisk.Options.Length - 1)
' Check if the Current Option is Selected
			If (TargetDisk.Options(i).Selected) Then
			 ' Collect only the Selected Values
					strSelectedIndex = strSelectedIndex & TargetDisk.Options(i).Value & vbCrLf
			End If
	Next
 
	strComputer = "."
	Dim sMsg
	Dim sDiskSize
	Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
	Set colDiskInfo = objWMIService.ExecQuery ("SELECT * FROM Win32_DiskDrive WHERE Index=" & strSelectedIndex)
 
	For each objDiskInfo in colDiskInfo
		sDiskSize = ConvertSize(objDiskInfo.Size)
	  sMsg = "Disk Index: " & strSelectedIndex & vbCrLf & "Disk Size: " & sDiskSize  & vbCrLf & "Disk Model: " & objDiskInfo.Model & 
vbCrLf & "Disk Serial Number: " & objDiskInfo.SerialNumber
	  Msgbox(sMsg)
	Next
 
 
End function
 
'this function sets the variable in MDT for the deployment
Function SetTargetDisk
 
strTargetDiskIndex = ""
' Check all the Options of the ListBox
For i = 0 to (TargetDisk.Options.Length - 1)
' Check if the Current Option is Selected
			If (TargetDisk.Options(i).Selected) Then
			 ' Collect only the Selected Values
					strTargetDiskIndex = strTargetDiskIndex & TargetDisk.Options(i).Value & vbCrLf
			End If
	Next
 
	oEnvironment.Item("OSDDiskIndex") = strTargetDiskIndex
 
End Function

Puis créer le fichier “DeployWiz_TargetDisk.xml” :

DeployWiz_TargetDisk.xml
<?xml version="1.0" encoding="utf-8"?>
<!--
 
' // ***************************************************************************
' //
' // Copyright (c) Microsoft Corporation.  All rights reserved.
' //
' // Microsoft Deployment Toolkit Solution Accelerator
' //
' // File:      DeployWiz_Definition_ENU.wsf
' //
' // Version:   6.3.8456.1000
' //
' // Purpose:   Main Client Deployment Wizard Defintion File
' //
' // ***************************************************************************
 
-->
<Wizard>
  <Global>
    <CustomScript>DeployWiz_TargetDisk.vbs</CustomScript>
  </Global>
  <Pane id="SelectTargetDIsk" title="Target Disk">
    <Initialization><![CDATA[ Disk_Initialization ]]></Initialization>
    <Body><![CDATA[
 
			<!-- Use the H1 Style for titles at the top of the page -->
			<H1>Specify the target disk for use in the deployment process.</H1>
 
			<table>
 
			<tr><td colspan=2>
			<H4>Target Disk</H4>
			</td></tr>
 
			<tr valign=top>
 
			<td width="80px">
			<img src="SD_HDD.png">
			</td>
 
			<td width="100%">
			<p>Select the target disk for deployment: </br>
			<SELECT NAME="TargetDisk" class=WideEdit language="vbscript" onchange="SetTargetDisk" >
			</SELECT>
			</p>
			<button style="background: inherit; background-image: url(SD_Help.png); width: 300px; height: 50px; border: 0px; font: 20px; font-weight: bold;" id="btnDiskInfo" title="View information about the selected disk." onclick="ShowDiskInfo" ondblclick="ShowDiskInfo">Click for show disk information</button>
 
 
			<input type=hidden NAME="UserLocale" class=WideEdit />
			<input type=hidden NAME="KeyboardLocale" class=WideEdit />
 
			</td>
			</tr>
 
			<tr><td colspan=2>
			<br>
 
			</td></tr>
 
			<tr valign=top>
 
			</tr>
			</table>
		]]></Body>
  </Pane>
</Wizard>

Ajouter CHOIX DU DISK 2ème Possibilité interface WPF and PowerShell

Sources : https://emeneye.wordpress.com/2018/12/25/choose-a-disk-to-install-windows-on-using-wpf-and-powershell/

Conditions préalables

Vous devrez ajouter les composants suivants à votre image de démarrage:
Windows PowerShell (WinPE-PowerShell)
Windows PowerShell (WinPE-StorageWMI)
Microsoft .Net (WinPE Dot3Svc)


Mise en place :

powershell.exe -STA -NoProfile -ExecutionPolicy Bypass -File %SCRIPTROOT%\Choose_Disk_WPF_GUI\ChooseDiskWPF.ps1

Commande pour Check if there’s more than one Hard Disk à insérer.

PowerShell.exe -NoProfile -Command "If ((Get-Disk | Where-Object -FilterScript {$_.Bustype -ne 'USB'}).Count -gt 1) {$TSEnv = New-Object -COMObject Microsoft.SMS.TSEnvironment;$TSEnv.Value('MoreThanOneHD') = $true}"


Application

Pré-install application

Avant installation des applications (Script) permettant l'installation/désinstallation/autre nécessaire pour l'installation complète de chaque application, il est nécessaire d’exécuter une commande désactivant la restriction d’exécution de script sur le system grâce à une tache (commande ci-dessous) cette commande est à modifier légèrement à la fin de l'installation pour restreindre de nouveau l’exécution de script sur le poste client.

PowerShell.exe -Command "& {set-executionpolicy Unrestricted -Force}"

Exemple utilisation

CMD : Start script pour application

Quiet install command :

cmd.exe /c Install_7z.cmd

Working directory :

.\Applications\7-zip-1900

PowerShell : Start script pour application

Quiet install command :

powershell.exe -ExecutionPolicy ByPass "& '%deployroot%\Applications\AddAppRunOnce\AddAppRunOnce_PowerShell.ps1'"

Working directory :

C:\Windows\System32\WindowsPowerShell\v1.0

Application de base

7-zip 1900

powershell.exe -ExecutionPolicy ByPass "& '%deployroot%\Applications\7-zip-1900\Install_7z.ps1'"
C:\Windows\System32\WindowsPowerShell\v1.0

Ccleaner 5.60.0.7307

powershell.exe -ExecutionPolicy ByPass "& '%deployroot%\Applications\Ccleaner-5.60.0.7307\Install_Ccleaner.ps1'"
C:\Windows\System32\WindowsPowerShell\v1.0

DirectX

cmd.exe /c Install_DirectX.cmd
.\Applications\DirectX

Filezilla

cmd.exe /c Install_FileZilla.cmd
.\Applications\FilezillaClient

Java8-32Bits 8.0.2210.11

cmd.exe /c Install_Java8x86.cmd
.\Applications\Java8-32Bits-8.0.2210.11

Java8-64Bits 8.0.2210.11

cmd.exe /c Install_Java8x64.cmd
.\Applications\Java8-64Bits-8.0.2210.11

Notepad++ 7.71

powershell.exe -ExecutionPolicy ByPass "& '%deployroot%\Applications\Notepad++-7.71\Install_NotepadPlusPlus.ps1'"
C:\Windows\System32\WindowsPowerShell\v1.0

Recuva 1.53

powershell.exe -ExecutionPolicy ByPass "& '%deployroot%\Applications\Notepad++-7.71\Install_Recuva.ps1'"
C:\Windows\System32\WindowsPowerShell\v1.0

SystemExplorer 7.0.0

powershell.exe -ExecutionPolicy ByPass "& '%deployroot%\Applications\SystemExplorer-7.0.0\Install_SystemExplorer.ps1'"
C:\Windows\System32\WindowsPowerShell\v1.0

TeamSpeak3 3.3.0

cmd.exe /c Install_TeamSpeak3.cmd
.\Applications\TeamSpeak3-3.3.0

TeamViewer 14.4.2669.0

cmd.exe /c Install_TeamViewer.cmd
.\Applications\TeamViewer-14.4.2669.0

VLC 3.0.7.1

cmd.exe /c Install_VLC.cmd
.\Applications\VLC-3.0.7.1

VNC-Viewer 6.19.715

powershell.exe -ExecutionPolicy ByPass "& '%deployroot%\Applications\VNC-Viewer-6.19.715\Install_VNCViewer.ps1'"
C:\Windows\System32\WindowsPowerShell\v1.0

WinRar 5.71

cmd.exe /c Install_WinRar.cmd
.\Applications\WinRar-5.71

Brave

cmd.exe /c Install_Brave.cmd
.\Applications\Brave

Google Chrome 75.0.3770.142

cmd.exe /c Install_GoogleChrome.cmd
.\Applications\Google-Chrome-75.0.3770.142

Mozilla Firefox 68.0.1

cmd.exe /c Install_Firefox.cmd
.\Applications\Mozilla-Firefox-68.0.1

Opera 62.0.3331.99

cmd.exe /c Install_Opera.cmd
.\Applications\Opera-62.0.3331.99

Specifiques

CPU-Z

powershell.exe -ExecutionPolicy ByPass "& '%deployroot%\Applications\CPU-Z\Install_CPU-Z.ps1'"
C:\Windows\System32\WindowsPowerShell\v1.0

CrystalDiskInfo

powershell.exe -ExecutionPolicy ByPass "& '%deployroot%\Applications\CrystalDiskInfo\Install_CrystalDiskInfo.ps1'"
C:\Windows\System32\WindowsPowerShell\v1.0

CrystalDiskMark

powershell.exe -ExecutionPolicy ByPass "& '%deployroot%\Applications\CrystalDiskMark\Install_CrystalDiskMark.ps1'"
C:\Windows\System32\WindowsPowerShell\v1.0

Defraggler

cmd.exe /c Install_Defraggler.cmd
.\Applications\Defraggler

DesktopOK

powershell.exe -ExecutionPolicy ByPass "& '%deployroot%\Applications\DesktopOK\Install_DesktopOK.ps1'"
C:\Windows\System32\WindowsPowerShell\v1.0

FilezillaServer

powershell.exe -ExecutionPolicy ByPass "& '%deployroot%\Applications\FilezillaServer\Install_FileZillaServer.ps1'"
C:\Windows\System32\WindowsPowerShell\v1.0

InternetDownloadManager

cmd.exe /c Install_InternetDownloadManager.cmd
.\Applications\InternetDownloadManager

mRemoteNG 1.76.20.24615

cmd.exe /c Install_mRemoteNG.cmd
.\Applications\mRemoteNG-1.76.20.24615

Putty 0.72

cmd.exe /c Install_Putty.cmd
.\Applications\Putty-0.72

QNAPQsyncClient

cmd.exe /c Install_QNAPQsyncClient.cmd
.\Applications\QNAPQsyncClient

RemoteDesktopManagerEnterprise

cmd.exe /c Install_RemoteDesktopManager.cmd
.\Applications\RemoteDesktopManagerEnterprise

UltraISO

powershell.exe -ExecutionPolicy ByPass "& '%deployroot%\Applications\UltraISO\Install_UltraISO.ps1'"
C:\Windows\System32\WindowsPowerShell\v1.0

Wireshark 3.0.3

cmd.exe /c Install_Wireshark.cmd
.\Applications\Wireshark-3.0.3

YaTQA

cmd.exe /c Install_YaTQA.cmd
.\Applications\YaTQA

Jeux

Steam 2.10.91.91

cmd.exe /c Install_Steam.cmd
.\Applications\Steam-2.10.91.91

Uplay 92.0.6280.0

cmd.exe /c Install_Uplay.cmd
.\Applications\Uplay-92.0.6280.0

Images et Videos

Gimp

cmd.exe /c Install_Gimp.cmd
.\Applications\Gimp

OBS-Studio 23.2.1

cmd.exe /c Install_OBSStudio.cmd
.\Applications\OBS-Studio-23.2.1

PaintDotNet

cmd.exe /c Install_PaintDotNet.cmd
.\Applications\PaintDotNet-4.2

PhotoFiltre

powershell.exe -ExecutionPolicy ByPass "& '%deployroot%\Applications\PhotoFiltre\Install_PhotoFiltre.ps1'"
C:\Windows\System32\WindowsPowerShell\v1.0

Scripts

AddAppRunOnce

powershell.exe -ExecutionPolicy ByPass "& '%deployroot%\Applications\AddAppRunOnce\AddAppRunOnce_PowerShell.ps1'"
C:\Windows\System32\WindowsPowerShell\v1.0

DeleteEdgeWelcome

powershell.exe -ExecutionPolicy ByPass "& '%deployroot%\Applications\DeleteEdgeWelcome\InstallEdgeWelcome.ps1'"
C:\Windows\System32\WindowsPowerShell\v1.0

DisableCtrlAltSupprStartup

cmd.exe /c DisableCtrlAltSupprStartup.cmd
.\Applications\DisableCtrlAltSupprStartup

DisableLockScreenStartup

cmd.exe /c DisableLockScreenStartup.cmd
.\Applications\DisableLockScreenStartup

DisableRecentHistory

powershell.exe -ExecutionPolicy ByPass "& '%deployroot%\Applications\DisableRecentHistory\DisableRecentHistory_PowerShell.ps1'"
C:\Windows\System32\WindowsPowerShell\v1.0

DisableSteamStartup

cmd.exe /c DisableSteamStartup.cmd
.\Applications\DisableSteamStartup

EnableRDPWin10

powershell.exe -ExecutionPolicy ByPass "& '%deployroot%\Applications\EnableRDPWin10\EnableRDP_PowerShell.ps1'"
C:\Windows\System32\WindowsPowerShell\v1.0

EnableShowHiddenFiles

powershell.exe -ExecutionPolicy ByPass "& '%deployroot%\Applications\EnableShowHiddenFiles\EnableShowHiddenFiles_PowerShell.ps1'"
C:\Windows\System32\WindowsPowerShell\v1.0

EnableShowHiddenFilesSystem

powershell.exe -ExecutionPolicy ByPass "& '%deployroot%\Applications\EnableShowHiddenFilesSystem\EnableShowHiddenFilesSystem_PowerShell.ps1'"
C:\Windows\System32\WindowsPowerShell\v1.0

EnableShowKnownFileExt

powershell.exe -ExecutionPolicy ByPass "& '%deployroot%\Applications\EnableShowKnownFileExt\EnableShowKnownFileExt_PowerShell.ps1'"
C:\Windows\System32\WindowsPowerShell\v1.0

NetFx3

powershell.exe -ExecutionPolicy ByPass "& '%deployroot%\Applications\NetFx3\Install_NetFX3.ps1'"
C:\Windows\System32\WindowsPowerShell\v1.0

ResetWindowsSearch

powershell.exe -ExecutionPolicy ByPass "& '%deployroot%\Applications\ResetWindowsSearch\ResetWindowsSearch_PowerShell.ps1'"
C:\Windows\System32\WindowsPowerShell\v1.0

Optimisation Win10

powershell.exe -ExecutionPolicy ByPass "& '%deployroot%\Applications\MenuPerso\MenuPerso.ps1'"
C:\Windows\System32\WindowsPowerShell\v1.0

Optimisation-Win10-AppsOnly

powershell.exe -ExecutionPolicy ByPass "& '%deployroot%\Applications\Optimisation-Win10-Complet\Windows10Decrapifier18XX_19XX_Complet.ps1' -AppsOnly"
C:\Windows\System32\WindowsPowerShell\v1.0

Optimisation-Win10-Complet

powershell.exe -ExecutionPolicy ByPass "& '%deployroot%\Applications\Optimisation-Win10-Complet\Windows10Decrapifier18XX_19XX_Complet.ps1'"
C:\Windows\System32\WindowsPowerShell\v1.0

Optimisation-Win10-OneDrive-Xbox

powershell.exe -ExecutionPolicy ByPass "& '%deployroot%\Applications\Optimisation-Win10-Complet\Windows10Decrapifier18XX_19XX_Complet.ps1' -OneDrive -Xbox"
C:\Windows\System32\WindowsPowerShell\v1.0

Optimisation-Win10-OneDrive-Xbox-Cortana

powershell.exe -ExecutionPolicy ByPass "& '%deployroot%\Applications\Optimisation-Win10-Complet\Windows10Decrapifier18XX_19XX_Complet.ps1' -OneDrive -Xbox -Cortana"
C:\Windows\System32\WindowsPowerShell\v1.0

Optimisation-Win10-OneDrive-Xbox-Cortana-Phone

powershell.exe -ExecutionPolicy ByPass "& '%deployroot%\Applications\Optimisation-Win10-Complet\Windows10Decrapifier18XX_19XX_Complet.ps1' -OneDrive -Xbox -Cortana -Phone"
C:\Windows\System32\WindowsPowerShell\v1.0

Optimisation-Win10-OneDrive-Xbox-Phone

powershell.exe -ExecutionPolicy ByPass "& '%deployroot%\Applications\Optimisation-Win10-Complet\Windows10Decrapifier18XX_19XX_Complet.ps1' -OneDrive -Xbox -Phone"
C:\Windows\System32\WindowsPowerShell\v1.0

Optimisation-Win10-SettingsOnly

powershell.exe -ExecutionPolicy ByPass "& '%deployroot%\Applications\Optimisation-Win10-Complet\Windows10Decrapifier18XX_19XX_Complet.ps1' -SettingsOnly"
C:\Windows\System32\WindowsPowerShell\v1.0

Optimisation-Win10-Xbox-Phone

powershell.exe -ExecutionPolicy ByPass "& '%deployroot%\Applications\Optimisation-Win10-Complet\Windows10Decrapifier18XX_19XX_Complet.ps1' -Xbox -Phone"
C:\Windows\System32\WindowsPowerShell\v1.0

VcRedists

Suivi procédure suivante


Exemple script installation

Script installation CMD

Install_App.cmd
@echo off
cls
echo --------------------------------------------------------
echo .
echo .
echo .      Installing App - Please Wait
echo .        This window will close once installed

REM Silent install for 64-bit
if defined ProgramFiles(x86) (
"%~dp0rcsetup153.exe" /S
)
if defined ProgramFiles(x86) exit
  
REM Silent install for 32-bit
"%~dp0rcsetup153.exe" /S

:: Wait for 20 seconds
ping -n 20 127.0.0.1 > NUL
 
exit

Script installation PowerShell

Install_App.ps1
# Script install App MDT
# ----------- Modifier variable apres cette ligne -----------
# ------------- Modify variable after this line -------------
 
$NameApp = "App"
$Installer32 = "App.exe"
$Installer64 = "App.exe"
$arguments = "/S"
$uninstaller32or64 = "App\Uninstall.exe"
$argumentsUninstall = "/S"
$Global:IsMsi = "0" #IsMsi = "0" or "1"
 
# --------------- Ne rien modifier apres cette ligne ---------------
# ------------- Do not modify anything after this line -------------
 
$scriptPath = split-path -parent $MyInvocation.MyCommand.Definition
$Global:IsCopyNeed = "0" # $CopyNeed = "0" or "1"
$SourceConfig = "$scriptPath\ConfigApp"
$DestinationConfig = "%AppData%\App"
$Global:DestinationConfig = "%AppData%_or_ProgramFiles\App"
$StartJob1 = "1" # $StartJob = "0" or "1"
$NameJob = "StopApp"
$ProcName = "AppProcName"
 
 
Write-Host "Debut installation $NameApp" -ForegroundColor Green
function CopyFilesToFolder ($fromFolder, $toFolder) {
    # Make sure the destination folder exists
	If(!(Test-Path $toFolder)){New-Item $toFolder -ItemType Directory -Force|Out-null}
	# Copy source folder contents to destination folder recursively
	Copy-Item "$fromFolder\*" -Destination "$toFolder" -recurse -force
}
 
function StartJob1PowerShell($NameJob1, $ProcName1) {
    Start-Job -Name "$NameJob1" -ScriptBlock {
        while($true) { Get-Process | where {$_.ProcessName -like "$using:ProcName1"} | Stop-Process; Start-Sleep -Seconds 10 }
    } -ArgumentList $ProcName1
}
 
# Uninstall
Write-Host "Uninstall $NameApp" -ForegroundColor Cyan
If ((Test-Path "${env:ProgramFiles(x86)}\$uninstaller32or64" -PathType Leaf) -or (Test-Path "${Env:ProgramFiles}\$uninstaller32or64" -PathType Leaf))
{
	If (Test-Path "${env:ProgramFiles(x86)}\$uninstaller32or64" -PathType Leaf)
	{
		Write-Host "TEST Desinstallation $NameApp ProgramFilesX86" -ForegroundColor Magenta
		If ($StartJob1 -eq "1"){ StartJob1PowerShell "$NameJob" "$ProcName"}
		$executableSupprFinal = "${env:ProgramFiles(x86)}\$uninstaller32or64"
		start-process $executableSupprFinal $argumentsUninstall -PassThru -Verb RunAs -Wait #-NoNewWindow
		Write-Host "Desinstallation $NameApp reussi" -ForegroundColor Yellow
	}
	elseif (Test-Path "${Env:ProgramFiles}\$uninstaller32or64" -PathType Leaf)
	{
		Write-Host "TEST Desinstallation $NameApp ProgramFiles" -ForegroundColor Magenta
		If ($StartJob1 -eq "1"){ StartJob1PowerShell "$NameJob" "$ProcName"}
		$executableSupprFinal = "${env:ProgramFiles}\$uninstaller32or64"
		start-process $executableSupprFinal $argumentsUninstall -PassThru -Verb RunAs -Wait #-NoNewWindow
		Write-Host "Desinstallation $NameApp reussi" -ForegroundColor Yellow
	}
	else
	{
		Write-Host "Desinstaller $NameApp introuvable" -ForegroundColor Red
	}
}
else
{
	Write-Host "$NameApp NON presente" -ForegroundColor Green
}
# Suppression du Job créer
If ($StartJob1 -eq "1") {
	If ( [bool](get-job -Name $NameJob -ea silentlycontinue) ) {
		Remove-Job -Name $NameJob -Force
	}
	Start-Sleep -Seconds 5
}
 
# Install
Write-Host "Installation $NameApp" -ForegroundColor Cyan
If (Test-Path "${env:ProgramFiles(x86)}")
{
	If ($StartJob1 -eq "1"){ StartJob1PowerShell "$NameJob" "$ProcName"}
	$Installer = $Installer64
	$DestinationConfig = "${env:ProgramFiles}\$DestinationConfig"
	$InstallerFinal = "$scriptPath\$Installer"
	If ($IsMsi -eq "1") {
		start-process msiexec.exe -ArgumentList '/i',$InstallerFinal,$arguments -PassThru -Verb RunAs -Wait #-NoNewWindow
	}
	Else 
	{
		start-process $InstallerFinal $arguments -PassThru -Verb RunAs -Wait #-NoNewWindow
	}
}
Else 
{
	If ($StartJob1 -eq "1"){ StartJob1PowerShell "$NameJob" "$ProcName"}
	$Installer = $Installer32
	$DestinationConfig = "${env:ProgramFiles(x86)}\$DestinationConfig"
	$InstallerFinal = "$scriptPath\$Installer"
	If ($IsMsi -eq "1") {
		start-process msiexec.exe -ArgumentList '/i',$InstallerFinal,$arguments -PassThru -Verb RunAs -Wait #-NoNewWindow
	}
	Else 
	{
		start-process $InstallerFinal $arguments -PassThru -Verb RunAs -Wait #-NoNewWindow
	}
}
# Suppression du Job créer
If ($StartJob1 -eq "1") {
	If ( [bool](get-job -Name $NameJob -ea silentlycontinue) ) {
		Remove-Job -Name $NameJob -Force
	}
	Start-Sleep -Seconds 5
}
 
# Copy Config Item from Deployroot
If ($IsCopyNeed -eq "1") {
	Start-Sleep -Seconds 2
	Write-Host "Copie auxiliere $NameApp" -ForegroundColor Cyan
	CopyFilesToFolder "$SourceConfig" "$DestinationConfig"
}
 
Write-Host "Fin install $NameApp" -ForegroundColor Green

Associations extensions application

Export :

En premier nous allons exporter la configuration des associations extension des fichiers sur notre machines témoin.

dism /online /export-DefaultAppAssociations:C:\Users\%username%\Desktop\DefaultAppAssociations.xml

Import :

Maintenant nous allons modifier légèrement la commande de base de l'import pour l'intégrer dans l'une des taches d'une TaskSequence de notre serveur MDT.
Pour rappelle la commande de base pour l'import est (exemple ci-dessous) :

dism /online /import-DefaultAppAssociations:C:\Users\%username%\Desktop\DefaultAppAssociations.xml

Ajout de la tache :


Drivers

Créer les dossiers suivant dans Out-of-Box Drivers :

Exemple de get wmic

C:\WINDOWS\system32>wmic computersystem get model,name,manufacturer,systemtype
Manufacturer  Model           Name            SystemType
Dell Inc.     Latitude E7450   WINCMD-PC2  x64-based PC
%make%\%model%
Dell Inc.\Latitude E7450
%make% = Dell Inc.
%model% = Latitude E7450

Autres exemple :

wmic baseboard get product,Manufacturer

http://techgenix.com/Deploying-Windows-7-Part26/
https://emeneye.wordpress.com/2013/01/14/injecting-drivers-based-on-target-computer-model/
http://www.msnloop.com/gestion-des-pilotes-avec-mdt-2013-update-1/
https://www.ronnipedersen.com/wmi-query/
http://www.microsoft-desktop.com/2014/03/mdt-gestion-des-drivers-via-make-model/
https://web.sas.upenn.edu/jasonrw/2016/09/25/mdt-and-drivers/
https://nas.wuibaille.fr/wordpress/tuto-installation-et-mise-en-oeuvre-de-mdt/9/
https://deploymentresearch.com/mdt-2013-lite-touch-driver-management/
https://blogs.technet.microsoft.com/canitpro/2012/04/23/grer-les-drivers-dans-mdt-2010-partie-1-les-drivers-fournis-sous-forme-dapplication/

Out-Of-Box Folders
    Operating System
        Make
            Model
            Model…
        Make…
    Operating System…
Out-of-Box drivers
  OS Architecture
    Marque du poste
      Modèle du poste
      Modèle du poste
    Marque du poste
      Modèle...
  OS Architecture

Ajouter une étape Set Task Sequence Variable avec DriverGroup001 et sur Windows 10 x64\%Model%
ou
Si un seul model :
Ajouter une étape Set Task Sequence Variable avec DriverGroup001 et sur Windows 10 x64\%make%

Injection drivers automatisé

Créer une nouvelle tache dans la task Sequence souhaitée au niveau de la partie Preinstall :

Permet de récupérer valeur par une fenêtre CMD :

wmic path win32_ComputerSystem get Model

Dans WMI namespace indiquer ceci :

root\cimv2

Dans WQL query indiquer ceci :

SELECT * FROM Win32_ComputerSystem WHERE Model LIKE '%Latitude E6410%'

Injection Drivers automatisé spécifiques

Par exemple dans une config ordinateur personnalisée le Model de l'ordinateur n’apparaît pas car il n'est pas un model unique du marché dans ce cas nous allons utiliser une autres Classe WMI pour déterminer le Model de carte mère par exemple et indiquer à la séquence de taches d'injecter les drivers spécifiques que nous auront préalablement spécifier en créant un profil spécifique.

Suivre la meme procedure que précedemment dans Injection drivers automatisé mais à la fin indiquer les conditions ci dessous a la place des conditions précédentes.

Dans WMI namespace indiquer ceci :

root\cimv2

Dans WQL query indiquer ceci :

SELECT * FROM Win32_BaseBoard WHERE Product LIKE '%RAMPAGE V EDITION 10%'



Autres exemple de pilote spécifique :
Exemple de commande servant a déterminer la carte video utilisée :

wmic path win32_VideoController get name
query SELECT * FROM Win32_Videocontroller WHERE Name LIKE '%GeForce%'

Installation silecieuse a tester : Extract the driver avec 7zip par exemple

setup.exe -noeula -clean -noreboot /s
setup.exe -s -clean -noreboot


Exemple:

Select * FROM Win32_ComputerSystem WHERE Manufacturer LIKE "%Dell%" AND Model LIKE "%E6510%"

Le symbole % permet de faire une recherche sur les caracteres suivant et précedent.

Si vous etes dans une machine virtuelle avec VMware, pour faire votre test.

Select * FROM Win32_ComputerSystem WHERE Manufacturer LIKE "%VMware%" AND Model LIKE "%VMware%"

Software Center for MDT (Add-App after install)

Les éléments du tuto sont tirés directement du super site :
http://www.systanddeploy.com/2018/02/powershell-tool-software-center-for-mdt.html

Voici une captures de l'outils final.


Télécharger la dernier version de l'outil :

https://gallery.technet.microsoft.com/MDT-Software-Center-a83b8847

Explication en vidéos (anglais) de l'outils :

https://www.youtube.com/watch?v=ZIRjsWQ-9yc&feature=emb_logo
https://www.youtube.com/watch?v=ztPhZve9Zkc&feature=emb_logo

Explication Outil d'interaction - Partage de déploiement :

  1. Vous disposez d'un EXE et d'un fichier MDTSoftwareCenter_Configuration.xml situés sur le client.
  2. Le fichier xml est utilisé pour définir certaines informations comme le chemin de partage de déploiement.
  3. L'outil utilisera ce fichier pour se connecter au partage de déploiement après avoir exécuté le fichier (.exe).
  4. Ensuite, le contenu de votre partage de déploiement sera répertorié.
  5. Pour installer par exemple une application, cliquez sur l'application à installer et cliquez sur le bouton Installer.
  6. Ceci exécutera le processus MDT.


Fichier a copier sur Serveur MDT et PC client

Dans votre partage de déploiement MDT :

Copiez les fichiers situés dans Copy in your Deployment Share\In Scripts dans le dossier Scripts de votre partage de déploiement MDT.

Sur le client :

Copiez les fichiers situés dans Copy on Client\On C à la racine de C:\
Copiez les fichiers situés dans Copy on Client\On desktop sur le bureau utilisateur.

Ajouter d'une nouvelle action FinishAction au serveur MDT

http://www.systanddeploy.com/2019/01/create-your-own-mdt-finishaction.html

Cette étape va permettre d'indiquer au MDT et à la séquence de tache de ne rien effectuer comme action après avoir appuyer sur le BOUTON “Terminer

Modification du fichier Litetouch.wsf (FONCTION)

Partie Fonction Action
Ajout-Code1-Litetouch.wsf
Sub NothingToDo_Reboot
' Add/Edit by Vincent1890

	Dim o, oOS
 
	' Executer un script powershell
	' Copy logs and system files
	' oShell.Run("powershell.exe -noexit -windowstyle hidden -file NothingToDo_Reboot_Actions.ps1")

	' Reboot
	If oEnv("SystemDrive") = "X:" then
		' Nothing to do, exiting will reboot
	Else
		' Set oOS = GetObject("winmgmts:{(Shutdown)}//./root/cimv2").ExecQuery("select * from Win32_OperatingSystem where Primary=true")
		' For Each o in oOS
			' o.Win32Shutdown(6)
		' Next
	End if
 
End Sub

Modification du fichier Litetouch.wsf (Variable)

Partie création de la variable FinishAction supplémentaire
Ajout-Code2-Litetouch.wsf
Select Case UCase(sFinishAction)
Case "SHUTDOWN"
	Shutdown
Case "CUSTOMFINISHNOTHINGTODO"
	NothingToDo_Reboot
Case "RESTART", "REBOOT"
	Reboot
Case "LOGOFF"
	Logoff
End Select


Nouvelle Séquence de tâches sur MDT :

Créez une nouvelle séquence de tâches configurée comme ci-dessous: Les élément a ajouter/sélectionner ci-dessous doivent être absolument respecté a la lettre

ID : CATALOG
Name : Catalog Installation
Type : séquence de tâches personnalisée


L'outil exécutera ce TS donc ajouter les éléments suivants dans votre nouvelle Task-Sequence dans l'ordre indiqué ci-dessous :


Si une utilisation de script Powershell est faite pour l'installation d'application les commandes suivantes doivent être ajoutées au début et fin de la Séquence de Tache pour autoriser l’exécution des scripts :
PowerShell.exe -Command "& {set-executionpolicy Unrestricted -Force}"

et

PowerShell.exe -Command "& {set-executionpolicy Restricted -Force}"


Comment l'outil détecte-t-il qu'un logiciel est installé ou avec une version différente ?

Lorsqu'une application est ajoutée par l'outil, il ajoute automatiquement des clés de registre. De cette façon, il les détectera la prochaine fois.

Il créer une clé regedit si celle ci n'est pas deja créer :

HKLM\Software\MDT_Catalog\Applications

Dans cette clé, chaque application installée créera une clé en utilisant le nom situé dans Applications.xml, voir ci-dessous.

Il créera également deux chaînes comme ci-dessous pour chaque application installée

Si un premier démarrage de l'outil MDT Software Center est fait avec clic droit “démarrage en tant que administrateur” la demande de mot de passe DeployementShare ne sera plus demandé ensuite sur le poste. (Modification du script faite par vincent1890 sur l'outil).
Problème actuelle avec l'outils :
  • Ajouter un écran de connexion dans l'outil, pour se connecter au partage de déploiement cela a été rectifier sur le github de vincent1890
  • Vérification des programmes déjà installer sur le pc client ne fonctionne pas bien.

Les problèmes ci dessus ne gène en rien l'utilisation et l'installation des applications ajouter au serveur MDT, les élément indiquer sont juste des optimisation de l'application PowerShell qui pourrait être ajouté/rectifié dans le future.

Autres

Vérification package on system

Net Framework

Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -recurse |
Get-ItemProperty -name Version,Release -EA 0 |
Where { $_.PSChildName -match '^(?!S)\p{L}'} |
Select PSChildName, Version, Release

or

cd "HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP"
ls

Install VcRedist et ajout automatique d'application MDT VcRedist

Installation module :

Set-ExecutionPolicy Bypass
Install-Module -Name VcRedist
Import-Module -Name VcRedist

Téléchargement Local :

New-Item -Path C:\Temp\VcRedist -ItemType Directory
Get-VcList | Save-VcRedist -Path C:\Temp\VcRedist

Installation Pack local :

$VcList = Get-VcList
Install-VcRedist -Path C:\Temp\VcRedist -VcList (Get-VcList) -Silent

Téléchargement et création application automatiquement dans MDT :

$VcList = Get-VcList
Import-VcMdtApp -VcList $VcList -Path C:\Temp\VcRedist -MdtPath \\192.168.10.30\DeploymentShare$ -Language fr-FR -Silent

Création d'un BundlePack dans MDT :

New-VcMdtBundle -MdtPath \\192.168.10.30\DeploymentShare$ -Language fr-FR

Logs

FIXME

Ou trouver les logs MDT pendant et aprés le déploiement

Les logs MDT ne se trouvent pas au même emplacement en fonction des étapes

Avant le diskpart =⇒ X:\MININT\SMSOSD\OSDLOGS
Après le diskpart =⇒ C:\MININT\SMSOSD\OSDLOGS
Apres le déploiement =⇒ %WINDIR%\TEMP\DeploymentLogs
la lecture des fichiers de Logs se fera avec cmtrace ou trace32

Description Path
Deployent tasks log process %SystemDrive%\MININT\SMSOSD\OSDLOGS\BDD.log
Deployment task sequencer log %SystemDrive%\Users\ADMINI~1\AppData\Local\Temp\SMSTSLOG\SMSTS.LOG
Domain join log %SystemDrive%\Windows\DEBUG\NETSETUP.LOG
Windows 7 setup log %SystemDrive%\Windows\Panther\setupact.LOG
Windows 7 unattend log %SystemDrive%\Windows\Panther\UnattendGC\setupact.LOG
Deployent tasks log process in an other folder %SystemDrive%\Windows\TEMP\DeploymentLogs\BDD.LOG
Deployment task sequencer log in an other folder %SystemDrive%\Windows\TEMP\SMSTSLog\SMSTS.LOG

Other log files you may want to look for:

ZTIApplications.log – When troubleshooting application installs
ZTIDrivers.log – When troubleshooting MDT Driver injection
ZTIDomainJoin.log – When troubleshooting joining the domain

Sources :

https://www.youtube.com/watch?v=-hWQbYToDjA
https://gal.vin/posts/build-and-capture-windows-10-2004-20h1-reference-image/
https://docs.microsoft.com/en-us/mem/configmgr/mdt/release-notes
https://docs.microsoft.com/fr-fr/mem/configmgr/mdt/
https://docs.microsoft.com/fr-fr/windows/deployment/deploy-windows-mdt/create-a-windows-10-reference-image
https://docs.microsoft.com/fr-fr/windows/deployment/deploy-windows-mdt/prepare-for-windows-deployment-with-mdt
https://deployadmin.com/2019/04/24/installation-de-microsoft-deployment-toolkit-mdt/
http://www.msnloop.com/les-logs-lies-a-linstallation-de-windows/
https://www.google.com/search?q=installation+et+la+configuration+de+base+d%27un+MDT&oq=installation+et+la+configuration+de+base+d%27un+MDT&aqs=chrome..69i57&sourceid=chrome&ie=UTF-8
http://www.msnloop.com/windows-10/
https://www.it-connect.fr/presentation-de-winpe/
https://docs.microsoft.com/fr-fr/windows/deployment/deploy-windows-mdt/deploy-windows-10-with-the-microsoft-deployment-toolkit
https://docs.microsoft.com/en-us/sccm/mdt/
https://helpcenter-cebox.wisper.io/docs/utilisation-de-lite-touch-pour-linstallation-de-vos-masters-mdt
http://www.msnloop.com/windows-10/
http://www.msnloop.com/installation-et-configuration-de-mdt-2013-update-1/
http://www.msnloop.com/deployer-windows-10-avec-mdt-2013-update-1/
https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/add-multilingual-support-to-windows-setup
https://blog.infeeny.com/2019/01/28/mdt-nouvelle-version-disponible/
https://www.it-connect.fr/mdt-techniques-de-gestion-de-la-base-de-donnees/
https://www.it-connect.fr/mdt-introspection-des-sequences-de-taches/
https://www.it-connect.fr/mdt-creer-une-cle-usb-litetouch-bootable/
https://www.it-connect.fr/mdt-realiser-une-installation-autonome-a-partir-dun-media/
https://www.it-connect.fr/overview-mdt-wds-winpe/
https://www.it-connect.fr/custpe-realiser-un-dual-boot-winpe-ltiwindows/
https://www.it-connect.fr/configuration-avancee-de-mdt-2013/
https://www.it-connect.fr/windows-10-nouveautes-sur-le-deploiement/
https://openclassrooms.com/fr/courses/2356306-prenez-en-main-windows-server
https://openclassrooms.com/fr/courses/1733521-installez-et-deployez-windows-10
https://www.vkernel.ro/blog/creating-an-offline-mdt-deployment-media
https://www.supinfo.com/articles/single/7608-deployer-une-image-windows-10-avec-wds-mdt-2013
https://docs.microsoft.com/fr-fr/windows/deployment/deploy-windows-mdt/get-started-with-the-microsoft-deployment-toolkit
https://www.microsoft.com/en-us/download/details.aspx?id=54259
https://www.askme4tech.com/building-custom-windows-iso-mdt-2013
https://www.petri.com/deploy-windows-10-using-mdt-wds-part-1-create-mdt-deployment-share
https://docs.microsoft.com/fr-fr/windows-hardware/get-started/adk-install#winADK
https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/winpe-add-packages--optional-components-reference https://www.supinfo.com/articles/single/5884-microsoft-deployment-toolkit
http://www.systanddeploy.com/2018/01/mdt-ps-wizard-all-mdt-wizards-in-one.html
https://labo-microsoft.supinfo.com/articles/mdt_2010_-_initiation/2/
https://win10.guru/windows-deployment-with-mdt-part-5-add-disks-and-partitions/
https://www.it-connect.fr/gestion-des-applications-dans-mdt/
https://www.it-connect.fr/mdt-integration-dapplications/
https://www.manageengine.com/products/desktop-central/software-installation/windows-software.html
https://www.it-connect.fr/gestion-des-applications-dans-mdt/
https://deploymentresearch.com/building-the-perfect-windows-server-2019-reference-image/
https://github.com/DeploymentResearch/DRFiles/blob/master/Scripts/Install-MicrosoftVisualC%2B%2Bx86x64.wsf
https://www.toutwindows.com/ws2019-installation/
https://docs.microsoft.com/fr-fr/windows/configuration/configure-windows-10-taskbar
https://docs.microsoft.com/fr-fr/windows/configuration/start-layout-xml-desktop
https://nathanblasac.com/deploy-a-custom-start-layout-configuration-policy-via-intune-windows-10-1809-a4ed72875c08
https://blog.piservices.fr/post/2013/06/06/Installation-de-Windows-(x64)-sur-une-partition-GPT
https://emeneye.wordpress.com/2017/04/25/automate-the-process-of-building-and-capturing-a-windows-10-1703-reference-image-building-the-task-sequence/
https://rdr-it.com/convertir-un-fichier-esd-en-wim/
https://www.powershellgallery.com/packages?q=Tags%3A%22MDT%22
https://www.powershellgallery.com/packages/LatestUpdate/3.0.171
https://www.experteam.fr/mdt-monitoring-deployment-success-error-mail-notification
https://www.pdq.com/blog/secure-password-with-powershell-encrypting-credentials-part-2/
https://interworks.com/blog/trhymer/2013/07/08/powershell-how-encrypt-and-store-credentials-securely-use-automation-scripts/
https://mdtguy.wordpress.com/2018/01/19/installing-adobe-acrobat-reader-dc-with-mdt/
https://blog.metsys.fr/powershell-et-le-monitoring-mdt/
https://deploymentbunny.com/2011/05/22/things-you-should-know-undocumented-properties-in-mdt-2010-update-1/
https://ecirtam.net/autoblogs/autoblogs/wwwitconnectfr_d5aed39c99b70ef3cb29dd221068f246f80c7098/?D%C3%A9buter-avec-MDT-2013
http://www.msnloop.com/deployer-des-applications-avec-mdt-2013/
http://www.msnloop.com/microsoft-edge-pour-les-entreprises-nouveautes-et-roadmap/
https://learning.rdr-it.com/course/deploiement-dimage-windows/
https://4sysops.com/archives/using-the-microsoft-deployment-toolkit-mdt-as-a-portable-application/
https://jm2k69.github.io/2017/07/Create-Master-MDT-Reference.html
https://docs.stealthpuppy.com/docs/vcredist/install
https://rdr-it.com/mdt-installation-configuration-microsoft-deployment-toolkit/
https://www.google.com/search?q=mdt+rst+driver+for+nvme&oq=MDT+RST+drivers+for+Nvme&sclient=gws-wiz-serp

Dart

https://rdr-it.com/dart-configuration-integration-mdt/
https://rdr-it.com/en/dart-configuration-and-integration-with-mdt/
https://execmgr.net/2016/02/02/dart-remote-control-winpe-the-nice-way/
https://deploymentresearch.com/adding-dart-to-configmgr-boot-images-and-starting-it-earlier-than-early/
https://docs.microsoft.com/fr-fr/archive/blogs/alex_semi/dart-remote-recovery-starts-too-late-in-your-osd-mdt-deployment-here-is-the-fix

Partie Erreur

https://winxperts4all.at/index.php/software/61-microsoft-deployment-tool-mdt/1146-mdt-2013-u2-built-in-apps-entfernen
https://stackoverflow.com/questions/19957161/add-type-load-assembly-from-network-unc-share-error-0x80131515
http://www.systanddeploy.com/2018/01/mdt-ps-wizard-all-mdt-wizards-in-one.html
https://gallery.technet.microsoft.com/MDT-PS-Wizard-4e6cf60b
https://gaby277.developpez.com/Tutoriels/utiliser-WinPE-pour-le-depannage/
http://www.msnloop.com/windows-adk-1903-est-disponible/
https://charbelnemnom.com/2017/10/how-to-create-a-custom-winpe-boot-image-with-powershell-support-powershell-deploy-windowsserver/
https://jayrbarrios.com/2019/10/07/creating-custom-windows-pe-from-adk-1903/
https://www.osdeploy.com/blog/winpe-10-1809-wpf-dramarama

Wsus :

https://www.virtuallyboring.com/deploy-configure-wsus-server-2012-r2/
https://emeneye.wordpress.com/2017/05/05/automate-the-process-of-building-and-capturing-a-windows-10-1703-reference-image-the-customsettings-ini-rules/
https://rdr-it.com/mdt-installer-mises-a-jour-wsus/

Select Disk mdt

Variable à modifier pour selection : OSDisk ou OSDDiskIndex

Ensemble des 3 prochains liens est prometteur edit le 2019-12-11 :
https://social.technet.microsoft.com/Forums/en-US/7f8a272c-6306-4361-8b54-01837f25362e/add-custom-pane-to-select-disk-in-mdt-wizard?forum=mdt
http://www.systanddeploy.com/2016/07/understanding-mdt-wizards.html
http://www.systanddeploy.com/2016/08/create-your-own-mdt-wizard.html

Prometteur et jolie mais powershell donc integration je comprend pas edit le 2019-12-09 :
Choose a Disk to Install Windows on using WPF and PowerShell | Me, Myself and IT
https://emeneye.wordpress.com/2018/12/25/choose-a-disk-to-install-windows-on-using-wpf-and-powershell/

Autres a trier :
https://gallery.technet.microsoft.com/MDT-Wizard-Display-some-f44ce0b2
https://specopssoft.com/blog/multiple-drives-causes-a-deployment-error/
https://serverfault.com/questions/612932/mdt-choose-specific-partition-to-install-windows-on
https://serverfault.com/questions/825411/how-to-manually-select-a-specific-disk-in-the-udi-wizard-when-using-mdt-2013
https://archive.codeplex.com/?p=mdtwizardstudio
http://www.systanddeploy.com/2016/08/create-your-own-mdt-wizard.html
https://www.it-connect.fr/overview-mdt-wds-winpe/
https://www.it-connect.fr/deploiement-doffice-avec-office-deployment-tool-odt/

User driven installation (UDI) - Microsoft Deployment Toolkit | Microsoft Docs
https://docs.microsoft.com/en-us/configmgr/mdt/user-driven-installation-developers-guide?redirectedfrom=MSDN

Integrating UDI into your SCCM OSD Task Sequences - TechNet Articles - United States (English) - TechNet Wiki
https://social.technet.microsoft.com/wiki/contents/articles/25739.integrating-udi-into-your-sccm-osd-task-sequences.aspx

MDT 2012 Update 1: UDI “Build Your Own Pages” – Michael Niehaus&#39; Windows and Office deployment ramblings
https://blogs.technet.microsoft.com/mniehaus/2012/08/01/mdt-2012-update-1-udi-build-your-own-pages/

elekgeek/MDT-Disk-Selector
https://github.com/elekgeek/MDT-Disk-Selector

Multiple Drives Causes a Deployment Error | Specops Software
https://specopssoft.com/blog/multiple-drives-causes-a-deployment-error/

Windows Deployment with MDT – Part 5: Add Disks and Partitions – Win10.Guru
https://win10.guru/windows-deployment-with-mdt-part-5-add-disks-and-partitions/

Script pour rendre ServiceUI.exe plus facile à utiliser pour les interfaces utilisateur personnalisées OSD - Les gars du déploiement
https://blogs.technet.microsoft.com/deploymentguys/2015/07/06/script-to-make-serviceui-exe-easier-to-use-for-osd-custom-user-interfaces/

Is there a way to add a task sequence to select a specific drive to format? : MDT
https://www.reddit.com/r/MDT/comments/9fvaqz/is_there_a_way_to_add_a_task_sequence_to_select_a/

Dynamically Select SSD Drive for OS Installation - Vacuum Breather
https://www.vacuumbreather.com/index.php/blog/item/72-dynamically-select-ssd-drive-for-os-installation

MDT - Choix du disque cible
https://social.technet.microsoft.com/Forums/fr-FR/61ef3881-a5f6-4a3e-ac36-9953a9ec89cc/mdt-choix-du-disque-cible?forum=win7fr

MDT Disk Partitioning
https://social.technet.microsoft.com/Forums/en-US/fe7a8e24-af1d-4f2a-b314-f4c3f2a3259a/mdt-disk-partitioning?forum=mdt

deploiement MdT 2010 : est ce possible de changer une variable de la Task sequence afin de conserver la partition data
https://social.technet.microsoft.com/Forums/fr-FR/bcd9441d-01f9-4951-8504-9fcdb7045fbe/deploiement-mdt-2010-est-ce-possible-de-changer-une-variable-de-la-task-sequence-afin-de-conserver?forum=win7fr

OSD - Live from the field my &#39;Best Practices&#39; for Operating System Deployment - renshollanders.nl
http://renshollanders.nl/2014/01/osd-live-from-the-field-my-best-practices-for-operating-system-deployment/

select disk number mdt - Recherche Google
https://www.google.com/search?q=select+disk+number+mdt&oq=select+disk+number+mdt&aqs=chrome..69i57.13475j0j7&sourceid=chrome&ie=UTF-8

MDT Disk Selector - Recherche Google
https://www.google.com/search?sxsrf=ACYBGNTxir-0QZTTy5NpmThk9uIzEoyzqg%3A1575927288890&ei=-L3uXeWCNueBjLsPy5iosAs&q=MDT+Disk+Selector&oq=MDT+Disk+Selector

Choisissez un disque pour installer Windows en utilisant WPF et PowerShell | Moi, moi-même et l&#39;informatique
https://emeneye.wordpress.com/2018/12/25/choose-a-disk-to-install-windows-on-using-wpf-and-powershell/#comment-2104

WinPE: Adding Windows PowerShell support to Windows PE | Microsoft Docs
https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/winpe-adding-powershell-support-to-windows-pe

Creating Custom Windows PE from ADK 1903 | JDeployment
https://jayrbarrios.com/2019/10/07/creating-custom-windows-pe-from-adk-1903/

ZTISelectBootDisk.wsf | Keith&#39;s Consulting Blog
https://keithga.wordpress.com/2013/09/18/ztiselectbootdisk-wsf/

ZTISelectBootDisk.wsf nouveau avec BusType | Blog de consultation de Keith
https://keithga.wordpress.com/2017/10/10/ztiselectbootdisk-wsf-new-with-bustype/

Install Silent MSI

https://sourceforge.net/projects/msi-installers/files/
https://blog.techygeekshome.info/2018/03/msi-installers-silent-distribution/
https://www.supinfo.com/articles/single/5873-deploiement-applications-avec-mdt-deployement-shares#idm46133027773216
http://leblogosd.wuibaille.fr/packages/
https://www.it-connect.fr/comment-supprimer-les-applications-pre-installees-sur-windows-10/
https://www.it-connect.fr/mdt-introspection-des-sequences-de-taches/
https://www.advancedinstaller.com/user-guide/msiexec.html
https://www.novatec-gmbh.de/en/blog/windows-silent-install-parameters/
Inno-Setup
https://jrsoftware.org/ishelp/index.php?topic=setupcmdline
NSIS
https://nsis.sourceforge.io/Docs/Chapter4.html#4.12

Install Monitoring

http://www.metsys.fr/blog/powershell-et-le-monitoring-mdt/

Erreur MDT

https://docs.microsoft.com/en-us/configmgr/mdt/troubleshooting-reference

Épingler a la bar de tache

https://gallery.technet.microsoft.com/scriptcenter/b66434f1-4b3f-4a94-8dc3-e406eb30b750#content

Tuto mdt parfait

Sommaire
MDT 2013 – Présentation
Mettre en oeuvre le service PXE pour un bios UEFI
MDT 2013 – Installation (partie 1)
MDT 2013 – Installation (partie 2)
MDT 2013 – Installation (partie 3)

https://docs.microsoft.com/en-us/configmgr/mdt/

Forum Microsoft MDT

https://social.technet.microsoft.com/Forums/en-US/home?forum=mdt
https://social.technet.microsoft.com/Forums/en-US/home?forum=mdt

VcRedists création d'application Visual C++ automatiquement dans MDT

https://msendpointmgr.com/2016/02/29/install-visual-c-redistributable-applications-with-powershell-in-mdt/
https://www.powershellgallery.com/packages/VcRedist/2.0.183
https://github.com/aaronparker/VcRedist
https://docs.stealthpuppy.com/docs/vcredist/
https://stealthpuppy.com/vcredist-powershell-module/

Transfert données utilisateur

https://mdtguy.wordpress.com/2013/04/10/time-is-money/
https://rdr-it.com/mdt-sauvegarde-profils-utilisateurs-usmt/

Config Auto CustomSettings.ini

https://www.techrepublic.com/article/mdt-automating-deployments-using-customsettings-ini/
https://deploymentbunny.com/2012/04/21/back-to-basic-customsettings-ini-explained/
https://deploymentresearch.com/creating-custom-variables-in-mdt-2013/
http://www.osd-couture.com/2016/06/cmmdt-how-to-set-variable-list-in.html
https://www.reddit.com/r/MDT/comments/gn54wz/command_line_litetouchvbs_custom_variables/
https://www.techrepublic.com/article/microsoft-deployment-toolkit-advanced-settings-for-automating-deployments-using-bootstrap-ini/

Upgrade/Update

https://gal.vin/2019/10/06/building-a-windows-10-1909-reference-image-with-mdt/
https://www.it-connect.fr/mise-a-niveau-vers-windows-10-via-mdt-2013-update-1/
https://www.nextofwindows.com/windows-10-1903-may-update-upgrade-via-mdt
https://messageops.com/in-place-windows-10-upgrade-via-mdt/

Monitoring

https://blog.metsys.fr/powershell-et-le-monitoring-mdt/
http://www.systanddeploy.com/2018/06/mdt-monitoring-web-with-bootstrap-part-1.html
http://www.systanddeploy.com/2018/06/mdt-monitoring-web-report-with.html
http://www.systanddeploy.com/2018/07/powershell-tool-mdt-light-monitor-new.html
http://www.systanddeploy.com/2017/03/mdt-monitoring-deployment-successerror.html
http://www.systanddeploy.com/2017/03/mdt-monitoring-wpf-deployment.html

Windows ADK 2004

http://www.msnloop.com/windows-adk-2004-est-disponible/

Appli associations extensions

Export :

En premier nous allons exporter la configuration des associations extension des fichiers sur notre machines témoin.

dism /online /export-DefaultAppAssociations:C:\Users\%username%\Desktop\DefaultAppAssociations.xml

Import :

Maintenant nous allons modifier légèrement la commande de base de l'import pour l'intégrer dans l'une des taches d'une TaskSequence de notre serveur MDT.
Pour rappelle la commande de base pour l'import est (exemple ci-dessous) :

dism /online /import-DefaultAppAssociations:C:\Users\%username%\Desktop\DefaultAppAssociations.xml

Ajout de la tache :



<WRAP half column>1...</WRAP>
<WRAP half column>2...</WRAP>

https://www.it-connect.fr/installer-mdt-sur-windows-server-2022-pour-deployer-windows-11-22h2/
https://gal.vin/utils/mdt-setup/
https://gal.vin/posts/2022/deploy-windows-10-22h2/
https://gal.vin/posts/2022/sdio-and-mdt/
https://blog.wuibaille.fr/2023/05/cle-usb-uefi-avec-des-wim-go/
https://github.com/Digressive/MDT-Files
https://learn.microsoft.com/en-us/windows-hardware/manufacture/desktop/default-input-locales-for-windows-language-packs?view=windows-11
https://blog.wuibaille.fr/2024/05/how-to-delegate-rights-to-allow-a-user-account-to-join-computers-to-the-domain/