[SCCM] Corriger les erreurs IIS 500.19

Bonjour à tous,

Lors d’une intervention pour débugger le composant Software Update Point chez un client, je me suis retrouvé confronté à un dysfonctionnement général de IIS. Par conséquent, plus de point de distribution, de point de gestion, etc…

Le dysfonctionnement n’est pas apparu immédiatement, mais seulement après avoir désinstallé le composant SCCM « Software Update Point » et le rôle Windows WSUS. A partir de ce moment on rencontrait systématiquement les erreurs suivantes et ce pour tous les sites Web hébergés par le serveur SCCM :

  • Logs IIS : erreurs 500
  • Mpcontrol.log : « Call to HttpSendRequestSync failed for port 80 with status code 500, text: Internal Server Error »
  • Navigateur Web : erreur 500.19 + Error Code 0x8007007e

Après quelques heures de recherche j’ai finalement trouvé la source du problème dans un article de l’équipe du support IIS : http://blogs.iis.net/webtopics/troubleshooting-http-500-19-errors-in-iis-7
Cet article présente les différents scénarii qui peuvent engendrer une erreur 500.19 pour tous les sites Web hébergés par un serveur IIS. Dans ma situation c’est le scénario 6, identifié par le code d’erreur 0x8007007e (affichée lorsque j’essaie d’ouvrir la page dans IIS) qui m’a permis de comprendre le problème. La désinstallation du rôle WSUS n’a pas retiré toute la configuration du site Web WSUS et en particulier une dépendance déclarée au niveau global, en d’autres termes pour tous les sites et applications Web hébergés par mon serveur.

This problem occurs because the ApplicationHost.config file or the Web.config file references a module that is invalid or that does not exist. To resolve this problem: In the ApplicationHost.config file or in the Web.config file, locate the module reference or the DLL reference that is invalid, and then fix the reference. To determine which module reference is incorrect, enable Failed Request Tracing, and then reproduce the problem.
For above specific error (mentioned in this example), DynamicCompressionModule module is causing the trouble. This is because of the XPress compression scheme module (suscomp.dll) which gets installed with WSUS. Since Compression schemes are defined globally and try to load in every application Pool, it will result in this error when 64bit version of suscomp.dll attempts to load in an application pool which is running in 32bit mode.

la résolution du problème est du coup devenue très simple, à savoir taper la commande suivante :
%windir%\system32\inetsrv\appcmd.exe set config -section:system.webServer/httpCompression /-[name='xpress']

cmd

Après un redémarrage du service IIS, tout est rentré dans l’ordre.

Enjoy 😉

[PowerShell] Découverte et personnalisation de PowerShell ISE

Bonjour à tous,

Apparu depuis maintenant quelques années, PowerShell est aujourd'hui incontournable. Pour ceux qui le découvrent, c'est un environnement d'exécution de tâches conçu spécialement pour l'administration des systèmes. Il repose entièrement sur .NET Framework et reprend les fondamentaux de la programmation orientée objet. Il permet aux administrateurs de contrôler et d'automatiser l'administration des systèmes d'exploitation Windows mais aussi de nombreux autres produits comme VMware, SCCM, Exchange, Azure, etc... Bref vous l'aurez compris, il vous sera de plus en plus compliqué de gérer vos environnements tout en ignorant ce composant !

Vous pouvez aborder PowerShell de 2 manières différentes :

  • En lançant la console PowerShell puis en exécutant des commandes comme par exemple dresser la liste de tous les processus actuellement en cours d'exécution (get-process). Après avoir récupéré cette liste vous pouvez stopper certains de ces processus à l'aide de la cmdlet Stop-Process. Dans ce mode de fonctionnement les commandes s'exécutent à votre grés. Aucune préparation n'est nécessaire. On travaille ici à la volée et le travail n'est pas réutilisable
  • En créant un script PowerShell qui prendra en charge l'exécution de nombreuses commandes que vous aurez reliées entre-elles à l'aide d'outils d'algorithmique tels que des conditions, des boucles, des filtres, etc. Ce scénario est particulièrement adapté lorsque vous devez exécuter la même procédure à de nombreuses reprises. L'idée est de décrire la marche à suivre dans ce script puis d'exécuter ce script chaque fois que ce "processus" doit être exécuté.

La rédaction d'un script PowerShell peut être réalisée avec un outil aussi simple que Notepad.exe. Cependant vous conviendrez que ce n'est pas l'outil le plus efficace car il ne permet par exemple pas de débugger ce script ou de bénéficier de coloration syntaxique bienvenue dans tout environnement de développement.

Dès la sortie de PowerShell Microsoft a intégré à Windows un éditeur de script : PowerShell ISE (Integrated Scripting Environment). Cet environnement vous permet de rédiger des scripts PowerShell tout en bénéficiant de nombreuses fonctionnalités :

  • IntelliSense qui vous proposera de compléter automatiquement ce que vous avez commencé à saisir
  • Des snippets ou extraits de code que vous pouvez insérer rapidement et ainsi réduire vos erreurs de saisie
  • Un enregistrement automatique de vos scripts toutes les 2 minutes (et croyez-moi c'est très utile !!)
  • Un debugger vous permettant d'exécuter tout ou partie de vos script en appliquant des points d'arrêt

Dans un premier temps cet environnement vous sera suffisant. Mais PowerShell ISE est un outil particulièrement personnalisable. C'est d'ailleurs son grand point fort. A tel point que plusieurs développeurs se sont "amusés" à ajouter des fonctionnalités supplémentaires qui peuvent être très utiles.

Cet article a pour objectifs de vous donner un aperçu de la personnalisation de l'éditeur PowerShell :

  • Dans un premier temps nous verrons qu'ISE est avant tout un environnement que nous chargeons qui est tout à fait personnalisable
  • Dans un second temps, nous nous focaliserons sur la création de nos propres snippets
  • Enfin je vous présenterai un Add-on permettant de littéralement doper votre ISE :  ISESteroids

Lire la suite

[Work Folders] Déploiement d’une solution interne

Bonjour à tous,

Dans  ce nouvel article je vous propose de décrire le déploiement d'une solution Work Folders à usage interne. Cette première implémentation permet de se familiariser avec les différents éléments composant cette fonctionnalité.

Lire la suite