Regional Options ve skriptu VBS

Pri ladení skriptu CAmonitor.vbs pro SCOM 2007 jsem narazil na problémy, kupodivu v celkem základní funkcnosti skriptu. Vzhledem ke zpusobu zpracování souboru skriptem VBS - zná pouze textové soubory - je nutno binární hodnoty konvertovat na znaky (string), které lze zapsat do textového souboru metodou Write. V konverzi nebyl žádný problém, ale v okamžiku zápisu znakového retezce do souboru objCRLFile.Write(strCRL) se u nekterých znaku beh skriptu zastavil s chybou (Microsoft VBScript runtime error: Invalid procedure call or argument). To je problém, protože musíme mít možnost zapsat všechny binární znaky v rozsahu chr(0) až chr(255).   

----------------------------------------------- konverze
' Convert the binary CRL into a string
debug "Convert the binary CRL into a string ..."
strCRL=""
for j = lbound(binCRL) to ubound(binCRL)
chrByte = ascb(midb(binCRL,j+1,1))
strCRL = strCRL & chr(chrByte)
next

----------------------------------------------- zápis

' Write the string crl to a file
err.Clear
Set objFso = CreateObject("Scripting.FileSystemObject")
Set objCRLFile = objFso.CreateTextFile(strCrlPath, True)
' Create the CRL, overwriting if necessary

objCRLFile.Write(strCRL) ' Write he content to the CRL
objCRLFile.Close
-----------------------------------------------

Po kontrole verze knihovny vbscript.dll a její aktualizaci došlo i na hledání rozdílu v operacním systému na serveru, kde se skript choval správne ve srovnání s cílovým systémem, kde skript havaroval. Je to prosté, klícové nastavení je zrejme Language for non-Unicode programs - melo by být ve shode s nastavením Regional Options - tedy v mém prípade Czech
Na serveru Windows Server 2003, English Edition, nastaveno ceské prostredí a umístení serveru - viz obrázky Regional and Language Options:

     

Díky kolegovi M. za inspiraci, zase jednou zvítezil duch nad hmotou :) 

AKTUALIZACE: viz Zmena formátu data pro Action Account (SCOM), 24. 4. 2009

Znacky Technorati: vbscript,regional options