PI Services

Le blog des collaborateurs de PI Services

SCCM - Les clients ne reçoivent plus les mises à jour après une restauration ou un changement de serveur

Suite au remplacement du serveur de site dans une infrastructure SCCM, les clients ne recevaient plus aucune mise à jour.

L’analyse du fichier de log UpdatesDeployment.log révèle le message “EnumerateUpdates for action (UpdateActionInstall) - Total actionable updates = 0 ' “.

Bien qu’il ne s’agisse pas à proprement parler d’une erreur, cette information est manifestement erronée : il y a bien des mises à jour manquantes, et l’exécution de la commande powershell suivante sur un client en donne la liste :

get-wmiobject -query "SELECT * FROM CCM_UpdateStatus" -namespace "root\ccm\SoftwareUpdates\UpdatesStore" | where {$_.status -eq "Missing"} 

Le client SCCM n’en reconnait pourtant aucune comme actionnable, comme le montre cette nouvelle commande qui ne renvoie rien :

get-wmiobject -query "SELECT * FROM CCM_SoftwareUpdate" -namespace "ROOT\ccm\ClientSDK"

Il faut savoir qu’à chaque synchronisation du catalogue WSUS, SCCM incrémente la version du catalogue. Cela permet aux agents de savoir si une version plus récente que celle qu’ils ont déjà téléchargé est disponible.

Or, lors du changement de serveur ou de la restauration d’une sauvegarde, il arrive que ce compteur reparte de 0… Si votre infrastructure SCCM existe depuis longtemps, il pourrait donc falloir des milliers de mise à jour du catalogue avant que la version n’atteigne à nouveau celle attendue par les agents!

Heureusement, le correctif est simple : il suffit de modifier dans le registre la version du catalogue afin de reprendre là où les agents s’étaient arrêté.

Commencons donc par identifier la version du catalogue qu’attendent les agents, à l’aide de la requête SQL suivante qui indique la plus haute valeur attendue :

;WITH XMLNAMESPACES ( DEFAULT 'http://schemas.microsoft.com/SystemsCenterConfigurationManager/2009/07/10/DesiredConfiguration') 
SELECT MAX(CI.SDMPackageDigest.value('(/DesiredConfigurationDigest/SoftwareUpdateBundle/ConfigurationMetadata/Provider/Operation[@Name="Detect"]/Parameter/Property[@Name="MinCatalogVersion"]/@Value)[1]', 'int')) MinCatalogVersion  
FROM [CI_ConfigurationItems] as CI  
WHERE CIType_ID = 8  

Il faut ensuite incrémenter d’une unité cette valeur, puis l’insérer dans la base de registre dans les clés suivantes :

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SMS\Components\SMS_WSUS_SYNC_MANAGER]
"ContentVersion"=x
"SyncToVersion"=x
"LastAttemptVersion"=x

Enfin, il faut exécuter une nouvelle synchronisation du catalogue dans SCCM afin que sa valeur reflète les modifications effectuées (ou attendre la prochaine synchronisation planifiée), puis exécuter un Machine policy refresh suivi d’un Update evaluation cycle sur les agents si vous souhaitez forcer le téléchargement des mises à jour.

SCOM 1801 - La console web affiche une page blanche sous IE11

Encore un petit souci de jeunesse de la nouvelle console web introduite dans SCOM 1801 lorsque vous tentez d’y accéder depuis Internet Explorer 11, une page blanche est affichée alors qu’elle fonctionne parfaitement sous Chrome/Firefox/Edge.

Pour pallier ce problème, il suffit de rajouter le HTTP Host Header suivant dans IIS, pour les sites OperationsManager et MonitoringView :

image

Nom : X-UA-Compatible

Valeur: IE=edge

image

Ce problème est normalement réglé par le passage à SCOM 1807, mais si tel n’était pas le cas, ce contournement devrait vous permettre de rétablir un accès normal!

SCOM 18xx–Voir les alertes dans la console web

Encore un souci lié à la nouvelle console web, introduite dans SCOM 1801 : lors de la création d’une Notification pour envoyer des alertes par mail, il est d’usage d’intégrer dans le corps du mail l’URL permettant d’ouvrir la console web sur l’URL en question, en utilisant le raccourci généré par le wizard :

image

image

Seulement voilà, l’URL insérée ici est incorrecte, elle ne correspond pas à la nouvelle console Web et cette adresse renvoie donc à la page d’accueil de la console !

Ce bug a été corrigé lors du passage à SCOM 1807 :

image

On voit ici que le bon format d’URL à utiliser est en réalité $Target/Property[Type="Notification!Microsoft.SystemCenter.AlertNotificationSubscriptionServer"]/WebConsoleUrl$/#/monitoring/drilldown/alert/$UrlEncodeData/Context/DataItem/AlertId$ , ce qui correspond au nouveau dashboard “Alert Drilldown”, auquel on accède normalement à partir d’un dashboard Alerts “nouvelle génération” (plus d’explications sur les nouveaux dashboards et les relations entre eux ici : https://blogs.technet.microsoft.com/momteam/2018/02/12/new-scom-web-console-blog-series-post4-the-all-new-drilldown-experience/ ) :

image


Malheureusement, cela engendre un nouveau problème : si l’utilisateur qui reçoit ce mail mais n’a qu’un accès limité à SCOM (permission accordée uniquement à quelques dossiers/vues), il risque fort de se trouver face à cet écran :

image

Ou, dans le meilleur des cas, celui-ci qui n’est pas beaucoup plus utile :

image

La raison en est que ce nouveau dashboard Alert Drilldown contient une série de widgets qui nécessitent également que l’utilisateur aie le droit d’y accéder individuellement. Or, cette permission n’est accordée par l’assistant User Roles que lorsqu’on accorde la permission à un dashboard qui y fait appel… dont aucun n’existe par défaut. Et même s’il en existait, vous pourriez très bien ne pas vouloir les montrer à tout le monde!

Un contournement serait donc de créer un dashboard Alerts “nouvelle génération”, de le cibler sur un groupe vide créé également pour l’occasion et d’en déléguer l’accès à tous les User Roles susceptibles de devoir accéder au Drilldown d’une alerte :

image


image

L’utilisateur devrait maintenant avoir accès au dashboard Drilldown alert :

image


En espérant que Microsoft corrige cela dans la prochaine version…

SCOM - Du rififi dans la console Web

Une des principales nouveautés introduites lors du passage de SCOM au mode Semi-Annuel (SAC, versions 1801 et ultérieures) est la refonte complète de la console Web, intégralement en HTML5.

Malheureusement, cette innovation ne s’est pas faite sans quelques regrettables accrocs, aussi bien lors de son installation que lors de son utilisation quotidienne.

Concernant l’installation, les utilisateurs forums technet et uservoice font état de problèmes récurrents, mais néanmoins assez aléatoires puisque deux serveurs installés par la même personne, le même jour, sur des VM identiques peuvent ne pas présenter les même problèmes :

  • L’option « Enable SSL » lors de l’installation n’active pas SSL dans les paramètres de IIS
  • Si SSL est activé dans IIS avant l’installation de SCOM et que « Enable SSL » est coché pendant l’installation, la console web n’est pas accessible en utilisant « use windows credential », mais elle l’est en réentrant les credentials manuellement
  • Si SSL est activé dans IIS avant l’installation de SCOM et que « Enable SSL » n’est pas coché pendant l’installation, la console web est accessible aussi bien en HTTP qu’en HTTPS
  • L’authentification ne fonctionne pas directement, il est nécessaire de réentrer ses credentials à moins de modifier l’ordre des providers d’authentification dans IIS afin de mettre NTLM en premier à la place de Negotiate.

 

Par ailleurs, une partie du contenu tel que les Dashboards, les vues Event… créés dans les versions précédentes de SCOM n’est plus accessible dans la nouvelle console Web.

« Heureusement », il est toujours possible d’accéder à l’ancienne console Web silverlight à l’adresse suivante : http://nomduserveur/Dashboard

De la même facon, les liens directs vers des alertes renvoient systématiquement vers la page d’accueil de la console web…

Bref, il reste encore du travail mais à n’en pas douter, la console web finira par remplacer la console lourde…. Un jour.

SCOM – Contournements du bug APM

Si vous gérez au quotidien un environnement SCOM, ou si vous suivez un tant soit peu l’actualité de cet outil, vous avez forcément déjà entendu parler du bug APM : depuis la sortie de SCOM 2016, lors du déploiement de l’agent, le module APM (application monitoring) est susceptible de provoquer le plantage de certains webservices hébergés dans IIS, même lorsque la fonctionnalité APM est désactivée.

Cela peut évidemment avoir un impact conséquent lorsqu’il s’agit de webservices utilisés pour une application critique en production…

Jusqu’ici (et donc depuis presque 3 ans…), Microsoft s’est contenté d’indiquer avoir constaté le problème et l’avoir corrigé « en partie » au fil des mises à jour de SCOM 2016. Cette « partie » est manifestement insuffisante, puisque le problème persiste et oblige à la plus grande vigilance lors du déploiement d’un nouvel agent puisque seule l’installation manuelle avec l’option NOAPM=1 permet de se prémunir à coup sûr du problème.

Avec la sortie de SCOM 1807, Microsoft propose enfin un contournement industrialisable à défaut d’une correction : le changelog indique en effet qu’il est désormais possible de pousser l’agent sans le module APM, que ca soit via la console ou via powershell :

 

Install-SCOMAgent -DNSHostName “nomduserveur.local” -PrimaryManagementServer $PrimaryMS –NoAPM

 

Un second contournement est proposé sur certains blogs ( par exemple https://blogs.technet.microsoft.com/hybridcloud360/2018/06/29/scom-and-apm-the-simplest-workaround/ qui fournit de nombreux détails) :

Il semble en effet que cela ne soit pas le module APM de SCOM 2016 en lui-même qui pose problème, mais plutôt l’ajout du paramètre EnableRTIA Profiler à la règle Apply APM Agent configuration  contenue dans le Management Pack Microsoft.SystemCenter.Apm.Infrastructure ; ce qui explique d’ailleurs que le problème se produise également sur les serveurs disposant toujours d’un agent SCOM 2012 R2 lorsque le reste de l’environnement SCOM a été mis à jour en version 2016 ou ultérieure.

Il suffit donc d’overrider cette règle pour passer le paramètre EnableRTIA Profiler à False, et le problème disparait !

Prenez cependant bien le temps de tester ceci dans votre environnement, il est tout à fait possible qu’il ne s’agisse là encore que d’un contournement partiel…

SCOM - Déplacer le rôle Reporting

Lors du déplacement du rôle Reporting vers un nouveau serveur SSRS pour le compte d’un client, je me suis heurté à quelques problèmes et interrogations pour lesquelles les réponses n’étaient pas toujours très claires ou accessibles.

On retrouve par exemple un certain nombre de billets de blogs ou de posts sur les forums technet qui indiquent qu’il n’est pas possible de déplacer la base de données utilisée par SSRS, et donc pas possible de conserver facilement tous les rapports personnalisés et planifiés.
Il est en réalité parfaitement possible de procéder à une nouvelle installation de SCOM Reporting Services sur un SSRS vierge puis de restaurer la base du précédent SSRS, à condition de bien réaliser les opérations dans cet ordre :

  • Sur l’ancien serveur de reporting, sauvegarder les bases ReportServer et ReportServerTempDb (noms par défaut) ainsi que la clé de chiffrement de SSRS et le fichier config
  • Installer SSRS sur le nouveau serveur
  • Installer le rôle SCOM Reporting sur le serveur
  • Restaurer les bases ReportServer et ReportServerTempDb ainsi que la clé de chiffrement
  • Reconnecter SSRS aux bases restaurées
  • Reprendre les paramètres dans web.config

 

Un nouveau problème peut survenir dans la foulée : si le serveur SSRS d’origine exécutait une licence supérieure de SSRS (par exemple Datacenter alors que le nouveau serveur SSRS ne dispose que d’une licence Standard), un message d’erreur vous accueillera lorsque vous tenterez de vous connecter au portail :

 

La solution la plus logique serait de supprimer toute référence à l’ancien serveur dans l’onglet Scale-Out de la console SSRS, mais malheureusement cela ne fonctionne pas.

Il est alors nécessaire de passer directement par l’édition de la table dbo.Keys dans la base ReportServer pour en retirer toute référence à l’ancien serveur en supprimant la ligne correspondante :

DELETE FROM [ReportServer].[dbo].[Keys]

WHERE MachineName = 'AncienServeur'

Redémarrez ensuite SSRS, et confirmez que le portail fonctionne maintenant bien et que vous pouvez y retrouver toutes vos personnalisations antérieures !

 

SCOM - Configurer Visual Studio 2017 pour les VSAE

Petite astuce très rapide, mais qui vous épargnera peut être une séance d’arrachage de cheveux :

Microsoft a communiqué il y a quelques mois sur la mise à jour des Visual Studio Authoring Extension (qui permettent de développer des management packs dans visual studio) pour offrir la compatibilité avec Visual Studio 2017, ce qui était très attendu.

Malheureusement, aucune documentation (à ma connaissance) n’indique une subtilité : si vous vous contentez d’installer Visual Studio 2017 (édition communauté ou autre) puis la dernière version des VSAE et que vous essayez de créer un nouveau projet « Management Pack », vous allez obtenir l’erreur suivante :

 

Impossible de charger le fichier ou l’assembly ‘Microsoft.VisualStudio.Modeling.Sdk.15.0 Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a’ ou une de ses dépendances. Le fichier spécifié est introuvable.

C’est parce qu’il vous manque un composant de VS 2017, dont la nécessité n’était certes indiqué nulle part…

Lancez donc une nouvelle fois le Visual Studio Installer, onglet Composants Individuels, et ajoutez le composant « Modeling SDK » disponible à la rubrique « SDK, bibliothèque et frameworks » :

 

Vous devriez maintenant pouvoir accéder aux projets Management Pack !

 

SCOM - Passer la console web en HTTPS

La console SCOM web est très souvent initialement déployée en HTTP simple :  l’utilisation du HTTPS pour les sites web accédés uniquement en local commence tout juste à se démocratiser, le certificat SSL n’a pas forcément été prévu au moment de déployer l’infrastructure SCOM…

Les demandes pour migrer la console en HTTPS commencent cependant à se multiplier, notamment à l’occasion d’un upgrade in-place des infrastructures SCOM 2012 vers 2016 (le cas de SCOM 1801 est un peu différent, la console web ayant totalement été refaite).

On pourrait imaginer qu’il suffit de passer le Default Web Site en HTTPS dans IIS, mais il n’en est rien. Si on se contente de ce paramétrage, la connexion à la console échoue avec le message suivant :

 

System.ServiceModel.CommunicationException: [HttpWebRequest_WebException_RemoteServer]
Arguments: NotFound
Debugging resource strings are unavailable. Often the key and arguments provide sufficient information to diagnose the problem. See http://go.microsoft.com/fwlink/?linkid=106663&Version=5.1.30214.0&File=System.Windows.dll&Key=HttpWebRequest_WebException_RemoteServer ---> System.Net.WebException: [HttpWebRequest_WebException_RemoteServer]
Arguments: NotFound
Debugging resource strings are unavailable. Often the key and arguments provide sufficient information to diagnose the problem. See http://go.microsoft.com/fwlink/?linkid=106663&Version=5.1.30214.0&File=System.Windows.dll&Key=HttpWebRequest_WebException_RemoteServer ---> System.Net.WebException: [HttpWebRequest_WebException_RemoteServer]
Arguments: NotFound

 

Il faut en réalité aussi modifier la configuration de SCOM à deux niveaux :

 

  • Dans le fichier x:\Dossier D’installation\Operations Manager\WebConsole\WebHost\Web.config, dans partie <services>, il faut modifier bindingConfiguration="DefaultHttpBinding" en bindingConfiguration="DefaultHttpsBinding"
  • Dans la clé HKLM\Software\Microsoft\System Center Operations Manager\12\Setup\WebConsole\  de la base de registre, il faut paramétrer :
    • HTTP_GET_ENABLED=false
    • BINDING_CONFIGURATION=DefaultHttpsBinding

 

Ne reste plus qu’à redémarrer iis (iisreset.exe) et le tour est joué!

 

SCOM - Réinitialiser complètement la console

Si vous développez des management packs, il vous est probablement déjà arrivé un bug assez agaçant : les colonnes affichées dans les vues (état, alertes…) ne reflètent pas ce que vous avez défini dans votre code.

L’ordre des colonnes n’est pas respecté, certaines colonnes sont visibles alors qu’elles ne devrait pas l’être et réciproquement…

Et en plus le résultat n’est pas le même d’un utilisateur à l’autre !

Vous connaissez probablement déjà le mode /clearcache de la console, mais cela ne change rien au problème.

Il s’agit en réalité d’une conservation des paramètres de personnalisation des vues dans la base de registre, qui n’est pas affectée par l’utilisation de /clearcache.

Pour réinitialiser complètement la console, une seule solution : fermez la console, lancez regedit et supprimez la clé  HKCU\Software\Microsoft\Microsoft Operations Manager\3.0\Console.

Relancez alors la console (tant qu’à faire en mode /clearcache, pour être sûr) et normalement tout sera rentré dans l’ordre… du moins pour votre profil et sur le poste où vous avez effectué le nettoyage.

Si d’autres utilisateurs/d’autres postes sont impactés, il faudra reproduire la manipulation !

SCOM – SAC ou LTSC ?

Nombre de clients étudient actuellement la migration de leur environnement SCOM 2012 (R2), qui, rappelons-le, a atteint la fin de sa période de support mainstream en juillet 2017.

Il y a actuellement deux possibilités : passer à la version 2016 sortie il y a déjà presque 2 ans ou opter directement pour la version 1801 sortie il y a moins de 2 mois ; sachant qu’il est possible de migrer depuis la version 2012 R2 directement vers ces deux versions, qu’il s’agisse de migration side by side ou in-place.

Commençons par rappeler que ces deux versions ne se distinguent pas par leur architecture ni leur prérequis, ils sont strictement identiques.

La version 1801 étant plus récente, elle contient bien entendu quelques fonctionnalités supplémentaires (et non des moindres, à l’image de la console web enfin 100% html5 et de ses nouveaux dashboards) ; mais ce n’est finalement pas ce qui la différencie fondamentalement de la version 2016. Pour un aperçu détaillé des nouveautés apportées par ces deux versions, technet reste la source la plus appropriée : What’s new in SCOM 2016 et What’s new in SCOM 1801 .

Non, ce qui différencie réellement ces deux versions, c’est plutôt que la sortie de la version 1801 marque la scission en deux branches distinctes de la suite System Center : la Long-Term Service Channel (LTSC) et la Semi-Annual Channel (SAC) ; reprenant ainsi le modèle inauguré avec Windows et SCCM Current Branch.

Ces deux termes désignent le mode de release du produit, autrement dit sa fréquence de parution, sa durée de support et les fonctionnalités qu’il intègre.

Afin de prendre la décision la plus renseignée possible, voici un tour d’horizon de ce que nous savons de ces deux branches… mais aussi (et surtout) de ce que nous ne savons pas encore !

LTSC

Ce mode de release est dans la continuité de ce qui était connu jusqu’ici :

  • Une nouvelle version majeure tous les 3 ans environ, qui devrait suivre les versions LTSC de Windows
  • Une durée de support de 5+5 ans (mainstream+étendu)
  • Des patchs tous les 3-6 mois visant principalement des corrections de bug et de sécurité (Update Rollups)
  • Peu ou pas de nouvelles fonctionnalités pendant la durée de vie du produit

Il n’existe pas encore réellement de release LTSC de System Center (bien qu’on puisse considérer que la version 2016 en est une), mais Microsoft a profité de l’annonce de Windows 2019 pour confirmer la sortie de System Center 2019, qui sera donc la première véritable LTSC (https://cloudblogs.microsoft.com/windowsserver/2018/03/20/introducing-windows-server-2019-now-available-in-preview/).

Il n’est donc pas possible pour le moment d’anticiper avec certitude les choix que Microsoft fera pour cette version, mais certaines suppositions peuvent être faites avec un minimum de fiabilité. Chaque nouvelle version LTSC devrait:

· Intégrer les nouvelles fonctionnalités parues dans les versions SAC précédentes

· Nécessiter d’en passer par une migration pour réaliser le changement de version, qu’elle soit in-place ou side by side, comme pour le passage de SCOM 2012 à 2016 par exemple.

Le mode d’installation des patchs (Update Rollups) devrait rester similaire à ce qui est connu actuellement avec SCOM 2012 et 2016 et devrait donc nécessiter un certain nombre d’étapes manuelles, sans toutefois entrainer d’indisponibilité de la plateforme.

Enfin, s’il semble acquis que la mise à jour vers la future LTSC 2019 sera supportée depuis la version 2016, rien n’indique qu’il sera possible de passer d’une version SAC (1801 et ultérieures) à la version LTSC 2019 ; ni qu’il sera possible de passer de la version LTSC 2019 à une version SAC ultérieure.

Les versions LTSC sont donc à privilégier lorsque la stabilité de l’infrastructure et la durée du support sont les points les plus importants de votre choix.

SAC

Dans ce mode, Microsoft annonce :

  • Une mise à jour tous les 6 mois environ
  • Une durée de support limitée aux 3 dernières versions, donc d’une durée d’environ 18 mois
  • L’ajout régulier de nouvelles fonctionnalités, probablement à chaque mise à jour

Attention : des mises à jour régulières signifient également autant de chances en plus de voir disparaitre des fonctionnalités ou le support de systèmes dépréciés.

La première version SAC est ainsi nommée « SCOM 1801 » en référence à sa date de sortie (Janvier 2018).

On peut donc supposer que la prochaine mise à jour apparaitra en juin-juillet 2018, mais Microsoft n’a pas encore communiqué dessus et n’a donc pas non plus communiqué sur la forme que prendrait cette mise à jour ni sur son mode d’installation.

Il est cependant là aussi possible de faire quelques suppositions à partir des éléments déjà disponibles :

On peut donc s’attendre à ce que le mécanisme de mise à jour vers la prochaine version SAC soit semblable à ce qui existe actuellement pour l’installation des Update Rollups ; autrement dit un processus par définition encore assez manuel mais n’entrainant pas d’indisponibilité de la plateforme.

On peut aussi imaginer qu’un mécanisme « in-console » similaire à celui de SCCM apparaitra à l’avenir, mais il s’agit d’une pure spéculation : Microsoft n’a aucunement communiqué à ce sujet, ni officiellement ni via les demandes de la communauté (https://systemcenterom.uservoice.com/forums/293064-general-operations-manager-feedback/suggestions/33067480-provide-capability-to-apply-update-rollups-from-co )

Par ailleurs, aucune information n’est disponible concernant la possibilité de passer d’une release SAC à une future release LTSC.

Les versions SAC sont donc à privilégier lorsque l’ajout régulier de nouvelles fonctionnalités et le support rapide des nouvelles technologies constituent les points les plus importants, tout en restant vigilant : un cycle de mise à jour rapide peut également entrainer la fin du support de certaines fonctionnalités et technologies à brève échéance (par exemple l’abandon de la supervision d’une ancienne version de Windows, ou l’obligation de mettre à jour la base de données).

Alors, on choisit quoi ?

Comme souvent il n’y a pas de bonne réponse universelle ; d’autant plus ici en raison des nombreuses incertitudes qui entourent encore le futur des 2 branches.

Au final, le choix peut se résumer à cette question : désirez-vous toujours disposer des dernières innovations du produit (ce qui n’est pas un luxe vu le retard qu’il accumule dans certains domaines) au prix d’une potentielle instabilité et au risque de voir disparaitre le support de certaines fonctionnalités ; ou préférez-vous la stabilité et la sécurité apportées par des release plus espacées et plus matures ?

Etant donné la vitesse de l’évolution des technologies (et mon attrait pour les nouvelles fonctionnalités), mon cœur balance évidemment vers la branche SAC. Mais votre point de vue pourrait être tout à fait opposé, et vous pourriez tout aussi bien décider de passer en version 2016 par sécurité, ou d’attendre la sortie en fin d’année de la version LTSC 2019…