[MDT] Améliorer la séquence de tâches Replace

Bonjour à tous,

Lors d’un récent projet il m’ été demandé de mettre en œuvre une séquence de tâches permettant de réformer un poste. Réformer un poste consiste à nettoyer toute donnée encore présente mais aussi à faire en sorte que leur récupération soit très compliquée.

J’ai tout d’abord conseillé à mon client un marteau. ça ne coûte pas cher et c’est très efficace 🙂 … mais ça n’est pas très développement durable. Nous avons ensuite décidé d’implémenter une séquence de tâches de type “Standard Client Replace Task Sequence” qui inclut déjà une étape d’effacement des disques. Mais cette dernière action n’a pas fonctionné.

Après réflexion et quelques tests voici une solution que je vous propose

1. Vue d'ensemble de la séquence Replace

Le principe général d’une séquence de tâches de type Replace consiste à réaliser une sauvegarde des données d’un poste de travail, puis de réaliser l’effacement de ces données. Sa création est elle aussi très simple. Créez une nouvelle séquence de tâches dans MDT et sélectionnez le Template Standard Client Replace Task Sequence”.

001

002
Comme vous pouvez le constater, c’est presque aussi simple qu’un marteau 🙂

L’étape Wipe Disk va, par défaut, réaliser 3 formatages complets de tous les volumes fixes. Les 2 éléments les plus importants du script ZTIWipeDisk.wsf sont les suivants :

  • (ligne 101) objWMI.ExecQuery("SELECT * from Win32_LogicalDisk WHERE DriveType = 3")
  • (ligne 105) "cmd /c format " & sDataDrive & " /fs:ntfs /p:3 /Y"

C’est le formatage complet et réitéré 3 fois qui rendra la restauration des données compliquée car un formatage complet consiste à écrire des zéros sur la totalité du volume, contrairement à un formatage rapide qui ne supprime que la table MFT et non les données.

Malheureusement plusieurs posts sur différents forums font état de bugs (l’effacement démarre mais ne se termine jamais et ne semble pas compatible UEFI).

2. Solution proposée

Pour résoudre ce petit souci, j’ai remplacé l’étape “Wipe Disk” par deux étapes :

  • Format And Partition Disk, qui a pour fonction de créer une partition unique prenant la totalité de l’espace disque disponible
  • Un script PowerShell qui réalisera le formatage complet du volume 3 fois
3. Mise en œuvre de la solution

Dans un premier temps nous allons ajouter le formatage du disque à la séquence de tâches. Pour ce faire, éditez votre séquence de tâches Replace puis :

  • Ajoutez au démarrage une variable WipeDisk=true
  • Ajoutez avant l’étape Wipe Disk une étape de type Format And Partition Disk

Ce diaporama nécessite JavaScript.

Ensuite, nous allons créer un script PowerShell puis l’ajouter à la séquence de tâches. Le script est le suivant  :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
$TSEnv = New-Object -ComObject Microsoft.SMS.TSEnvironment
$LogPath = $TSEnv.Value("LogPath")
$LogFile = "$LogPath\$($MyInvocation.MyCommand).log"
Start-Transcript -Path $LogFile
 
$VolumesToWipe = @(Get-Volume | Where-Object {$_.DriveType -eq "Fixed"})
Write-host ($VolumesToWipe.Count + " Volumes to Wipe")
foreach ($Volume in $VolumesToWipe)
{
    try
    {
        for ($i = 0; $i -lt 3; $i++)
        { 
            Write-host ("Start Wiping " + $Volume.DriveLetter + ":\ (" + $Volume.FileSystemLabel + ") - Pass " + $i )
            Format-Volume -InputObject $Volume -FileSystem NTFS -NewFileSystemLabel WipedVolume -Full -Force | Out-Null; 
            Write-host ("Successfully wiped - pass" + $i)
        }
 
    }
    Catch
    {
        Write-host $_.Exception.Message
    }
 
}
Stop-Transcript

Sauvegardez ce script dans le dossier Scripts de votre deploymentShare.

Ce script va réaliser la même opération que le script WipeDisk, à savoir 3 formatages complets de chaque volume fixe. Notez que vous trouverez des détails d’exécution dans le dossier de Logs MININT. Terminez la procédure en ajoutant l’exécution de ce script à la fin de la séquence de tâches.

Ce diaporama nécessite JavaScript.

Et ça devrait être bon 😉

Cette méthode n’ayan été testée que dans un contexte bien précis, je serai heureux d’avoir vos retours d’expérience.

Enjoy 😉

 

5 réflexions au sujet de “[MDT] Améliorer la séquence de tâches Replace

  1. Régis,
    j’ai l’impression que tes liens de points 1, 2 et 3 ne fonctionnent pas. Autant sur Edge que IE11.

    Thierry

    • Salut Pierre,

      Comment vas-tu ? et comment va la dreamTeam du C.R ?
      Est-ce que, par hasard, tu consultes cet article via une connexion 3G ou 4G (on m’a déjà remonté ce bug). Mais depuis une connexion classique ça marche.
      Merci d’avance,

      Régis

      • Salut Régis,

        La dream team va bien. Elle commence a préparer la migration vers W10…
        Et non ni 3 ni 4G. par contre peut être le proxy…
        je testerai en ADSL et te dirai.

        Thierry

  2. Bonjour Régis,

    Ayant le même projet que le votre j ai repris la procédure ci-dessous et le même script à l’ identique mais au moment du déploiement de la tâche séquence j’ai une erreur “litetouch deployment failed, return code = -2147467259 0x80004005”
    je trouve pas la solution please help me,merci de prendre considération de ma demande,

    Jaw,

    • Bonjour Jaw,
      il faudrait Analyser le fichier de logs qui se situe dans C:\Windows\Temp\SMSTS\BDD.Log afin de cibler l’erreur.
      Pour plus de visibilité vous pouvez utiliser CMtrace.exe.
      Cordialement,
      Régis

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. Apprenez comment les données de vos commentaires sont utilisées.