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.

3 réflexions au sujet de “paramètres régionaux: le grand chelem”

  1. bonjour,

    Je cherche depuis longtemps à resoudre ce problème avec MBSA, avez vous trouvé une nouvelle solution que le traitement manuel ?
    Car cela limite l’utilisation du script automatique pour une analyse périodique.

    Merci

  2. Bonjour,

    Merci pour la réponse, mais pouvez vous préciser quels sont les paramètres à modifier ?

Laisser un commentaire