Powershell DSC: Le serveur de conformité

Dans les articles précédents, nous avons configuré un serveur Powershell DSC de type PULL. Nous l’avons ensuite sécurisé avec HTTPS pour chiffrer les échanges avec les machines recevant les configurations.

Nous allons maintenant regarder de plus près la deuxième application qui est installée lors de la configuration du serveur PULL:  PSDSCComplianceServer.svc.

Je me suis basé sur un blog de l’équipe Powershell à ce sujet pour comprendre le cheminement des commandes à passer, et j’ai adapté le script fourni avec un output en html (j’utilise beaucoup le HTML pour générer des tableaux de rapports afin des les envoyer par email ou les publier sur un site).

Nous allons utiliser les cmdlets Invoke-WebRequest et ConvertFrom-Json pour récupérer le statut de conformité des machines configurées par notre serveur PULL.

Nous allons ensuite convertir ces informations en format HTML et sauvegarder dans le Path fourni.

Voici le script:

A noter que j’ai eu initialement des erreurs de type Access Denied en essayant d’accéder au serveur. Dans les commentaires du blog mentionné plus haut, un internaute a donné la réponse à ce problème que j’indique ici:

« After some digging I finally discovered that this section is missing in Complience service web.config:
<modules>
<remove name= »WebDAVModule » />
<remove name= »AuthenticationModule » />
<add type= »Microsoft.Powershell.DesiredStateConfiguration.PullServer.AuthenticationPlugin, Microsoft.Powershell.DesiredStateConfiguration.Service » name= »AuthenticationModule » />
</modules>

It should be added under <system.webServer> configuration section. You can check Pull service web.config for example. »

Attention aux guillemets (« ) en copiant le code.

J’ai fait la modification et ça a bien fonctionné, voici le résultat:

DSCcompliance