SCCM OSD + Web Service (C#) : Reprise des applications préalablement installées, lors d’un déploiement de poste en mode « refresh ».Comment faire ?

Certains d’entre vous et j’en connais plus d’un me dirait mais pourquoi as-tu fait ce post alors que MDT embarque un mécanisme (table de mapping + procédure stockée) pour faire de la reprise d’applications préalablement installées sur le poste en se basant sur l’inventaire SCCM.

Tout simplement car certains clients ne veulent pas entendre parler MDT. Ils préfèrent faire des développements qui répondent entièrement à leur besoin plutôt que de rajouter encore une couche (en l’occurrence MDT) où il va de toute façon encore falloir customiser, scripter… car ça ne répond pas à 100% de leur besoin.

Vous verrez pour ceux qui connaissent MDT que je n’ai pas réinventé la poudre. L’exemple que je propose consiste en :

  1. La mise en place d’une table de Mapping (come MDT) qui fait le lien entre le nom de l’application issue de l’inventaire SCCM et le package à installer
  2. La création de procédure(s) stockée(s) qui seront appelés par le Web Service
  3. La création d’un ou plusieurs Web Service (C#) permettant de fournir la liste des packages à installer en fonction de l’adresse MAC de la machine
  4. Un script (VBS) exécuter lors de la séquence de tâches afin de consommer le Web Service et récupérer la liste des packages à installer
  5. Il faut enfin modifier la séquence de tâches pour que tout fonctionne

Etape 1 : Table de mapping

La table de mapping doit à minima contenir deux champs :

  • ArpName : contient la liste des applications remontées par l’inventaire SCCM (nom de l’application issue de l’inventaire)
  • Packages : contient le package à exécuter (de la forme : <PackageID>:<Programme>

Etape 2 : Procédures stockées

La procédure stockée permet à partir de l’adresse MAC de la machine de récupérer la liste des applications préalablement installées en se basant sur l’inventaire matérielle SCCM de la machine (identique MDT)

clip_image002

Etapes 3 : Web Service

· Initialisation et connexion à la base de données et exécution de la procédure stockée (dans l’exemple la procédure stockée et la table de mapping sont hébergées par la même base) puis renvoi du résultat

clip_image004

clip_image006

Etape 4 : Script

Le script récupère l’adresse MAC de la machine, appelle le Web service lui passant en paramètre l’adresse MAC de la machine, récupère la liste des applications à installer et charge les packages à installer (<IDdupackage>:<Programme>) dans la variable PackageXXX (où XXX s’incrémente pour chaque package)

clip_image008

Etape 5 : Séquence de tâches

Il faut donc, dans la séquence de tâche « refresh », créer les deux tâche suivantes :

  • Installation d’un package contenant le script à exécuter.
  • Installation d’applications multiples.

Ci-dessous un exemple de création des tâches dans une séquence des tâches :

image

image

Remarque : Cet exemple sert de base et doit être modifié, adapté en fonction des besoins ! Il est là pour vous faire voire que c’est possible facilement.