paramètres régionaux: le grand chelem

J’ai récemment accumulé pas mal de problèmes liés aux paramètres régionaux (développeurs, si vous me lisez…). Avoir un OS en anglais ne suffit plus à priori à s’éviter les ennuis! Les nominés sont:

SCOM 2007:

  • Dell: dans leur Management Pack, un vbscript (DellStorageDiscovery.vbs) fait un cint avec un « . » codé en dur, ce qui n’est pas le séparateur décimal en Français. Bug remonté, en cours de correction par Dell
  • ISA 2006: le Management Pack récupère la date d’installation de la ferme ISA depuis ADAM sous la forme MM/DD/YYYY. Si ISA a été installé après le 12 du mois, cela ne fonctionne pas (blocage à l’insertion de la valeur en base de données SCOM). Bug remonté, en cours de correction par Microsoft

MBSA: Certaines catégories sont reprises en français (depuis un XP FR), et les accents é;à… se transforment en caractèrent XML invalides. Solution: correction manuelle via un éditeur de texte…

Broadcom: problème de date comme évoqué dans un précédent billet

Pour Dell, voici la fonction incriminée (en rouge le problème):

Function CheckVBScriptEngine()
Dim bIsCompatV,  var
Const VBSCRIPT_MIN_VERSION = 5.6
var = ScriptEngineMajorVersion & « . » & ScriptEngineMinorVersion
If (CInt(var)) < VBSCRIPT_MIN_VERSION Then
bIsCompatV = False
Else
bIsCompatV = True
End If
If Err <> 0 Then
CheckVBScriptEngine  = Err.Number
Else
CheckVBScriptEngine = bIsCompatV
End If
End Function

Ma version :
Function CheckVBScriptEngine()
Dim bIsCompatV,  var, sep, WshShell
Set WshShell = WScript.CreateObject(« WScript.Shell »)
sep = WshShell.RegRead(« HKCU\Control Panel\International\sDecimal »)
Const VBSCRIPT_MIN_VERSION = 5.6
var = ScriptEngineMajorVersion & sep & ScriptEngineMinorVersion
If (CInt(var)) < VBSCRIPT_MIN_VERSION Then
bIsCompatV = False
Else
bIsCompatV = True
End If
If Err <> 0 Then
CheckVBScriptEngine  = Err.Number
Else
CheckVBScriptEngine = bIsCompatV
End If
End Function
Pour ISA, le workaround temporaire est de créer un compte dédié, se logguer avec, mettre les paramètres régionaux en anglais, et de l’utiliser en tant que Action Account dans SCOM.

Pour le MBSA, l’erreur se présente sous cette forme:

erreur MBSA
erreur MBSA

DSI++: Toujours utiliser les fonctions du langage ou Framework afin d’utiliser les paramètres régionaux. Ne pas hésiter à tester vos logiciels avec plusieurs langues s’ils ont une vocation internationnale.

SCOM 2007: Web Application: Untrusted CA

Contexte:

  • vous venez de créer une Application Web dans SCOM 2007, qui est en https (SSL)
  • La case « monitor SSL health » est cochée
  • Loggué sur le watcher node, vous n’avez pas d’alerte de sécurité avec Internet Explorer
  • Vous avez l’erreur suivante:
SCOM 2007 Web Application: Untrusted CA
SCOM 2007 Web Application: Untrusted CA

Problème:
Il vous manque un certificat dans la chaîne. Votre compte Windows a bien toute la chaîne, mais pas le compte ordinateur local. Dans mon cas, il a fallu ajouter un certificat Verisign (Class 3) pour le compte ordinateur local:

MMC Certificat: Compte ordinateur local
MMC Certificat: Compte ordinateur local

….Et les alertes disparaissent! On aurait pu se contenter de décocher la vérification de la santé du SSL, mais c’est toujours mieux de corriger le problème à la source, et d’être prévenu quand son certificat a expiré 🙂