Hier, j’ai fait face à un problème ennuyeux lors du chargement d’un module PowerShell. En l’occurrence dans ma situation, je souhaitais charger le module pour System Center 2012 Configuration Manager. J’ai reçu l’erreur suivante :
Import-Module : The following error occurred while loading the extended type data file:
, C:\Program Files (x86)\Microsoft Configuration
Manager\AdminConsole\bin\Microsoft.ConfigurationManagement.PowerShell.Types.ps1xml: The file was skipped because of
the following validation exception: File C:\Program Files (x86)\Microsoft Configuration
Manager\AdminConsole\bin\Microsoft.ConfigurationManagement.PowerShell.Types.ps1xml cannot be loaded because its
operation is blocked by software restriction policies, such as those created by using Group Policy..
At line:1 char:1
+ Import-Module 'C:\Program Files (x86)\Microsoft Configuration Manager\AdminConso ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Import-Module], RuntimeException
+ FullyQualifiedErrorId : FormatXmlUpdateException,Microsoft.PowerShell.Commands.ImportModuleCommand
Après quelques recherches, j’ai découvert qu’on avait choisi de ne jamais lancer ce module sur la machine que j’utilisais. En effet, vous recevez un message « Do you want to run software from this untrusted publisher” proposant de ne jamais lancer (V), de ne pas exécuter (D), de exécuter une fois (R), ou de toujours exécuter (A). Le choix (V) avait été fait engendrant ce message systématique pour le module.
J’ai commencé à chercher comment résoudre le problème et je suis tombé sur un article très intéressant sur la signature du code PowerShell et les stratégies de restriction logiciel (SRP) : http://blogs.technet.com/b/industry_insiders/archive/2007/08/17/software-restriction-policies-and-powershell-code-signing.aspx
Comment résoudre le problème ? Lorsque vous optez pour ne jamais lancer le module, Windows blackliste le certificat utilisé par l’éditeur pour signer son module.
Vous devez donc ouvrir la console MMC et charger le composant additionnel de gestion des certificats pour l’utilisateur. En naviguant dans l’arborescence Untrusted Certificates – Certificates. Vous observez le certificat en question que vous devez supprimer pour résoudre le problème.
Lorsque vous importez à nouveau le module, vous recevez la question demandant si vous souhaitez exécuter le module
Si vous souhaitez toujours exécuter le module, le certificat associé est ajouté à la liste des Trusted Publishers.
Notez que ce problème peut être dû à l’application de software restriction