Powershell DSC se perd … dans l’espace !

Est-il possible pour Powershell DSC de se perdre dans l’espace ? La réponse et oui.

Mais … sa responsabilité n’est pas totalement engagée !

Pas très clair ? C’est bien normal, voici une petite explication pour bien comprendre le titre de ce post.
Impossible ce matin pour la ressource Package DSC d’installer un MSI. C’est pourtant une demande courante et qui ne présente pas  de difficulté particulière !

Il faut fournir dans le fichier déclaratif le chemin d’accès vers le MSI, son nom et son ProductID. Rien de plus.
Sous cette forme donc :
image001
Deux solutions pour trouver ces informations :

  • ORCA (présent dans le SKD Windows 10) qui a l’avantage de récupérer les informations directement dans le MSI.image002
  • Powershell à l’aide de la commande Get-WmiObject -Class Win32_Product | fl Name,Version,InstallDate,InstallSource,PackageName,IdentifyingNumber . Attention, cette commande remonte les informations sur une machine ou le produit est déjà installé.

Pourtant, depuis Azure Automation, impossible d’appliquer la configuration. Problème de correspondance entre le ProductId et le Name. Tests, retests, rien à faire.

Powershell se perd dans l’espace … puisque le MSI comporte une petite coquille.

image003

Le nom consigné dans le MSI n’est pas :
Microsoft SQL Server 2019 LocalDB‘ (sans espace en fin de chaîne) mais ‘Microsoft SQL Server 2019 LocalDB ‘. Avec un espace après DB.
La déclaration de la configuration DSC doit être modifiée pour porter la bonne chaîne de caractère.
Powershell DSC … non coupable !