VBS : Utilisation non autorisée de Null: 'CSTR'

Signaler
-
Bonjour à tous,

je viens vers vous, car j'ai un souci avec un script (je ne gère pas du tout ça)

Il se trouve que j'ai une erreur "Utilisation non autorisée de Null: 'CSTR' " quand je lance le .WSF
Code : 800A005E

Le souci est présent que sur un poste (comme par hasard celui qui doit a tout pris fonctionner), il y-a exactement les mêmes informations sur les autres postes sur le quel on copie le script, seul celui ci est un pc portable ...


Voici le script :

<job id="IncludeExample">
   <script language="VBScript" src="conf.vbs"/>
   <script language="VBScript">
  Dim JVM_interdit(3)
  JVM_interdit(0)="1.6.0_10"
  JVM_interdit(1)="1.6.0_25"
  JVM_interdit(2)="1.6.0_26"
  IsDebugMode = false
  JVM_min = "1.7.0_00"
  JVM_max = "1.7.0_99"
  Dim BestJavaVersionPath
  Dim BestJavaVersion
  Dim BestIsJDK
  Wow_priority = true
    ' temporisation a ete ajoute car sur certaines machine, JAMS ne se lance pas alors qu'avec une message boxpour temporise un peu, ca marche
    temporisation = false
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    jumppath = CStr(oFSO.GetParentFolderName(WScript.ScriptFullName))

  Function getPara()
   If (BestIsJDK) Then
    If (IsDebugMode) Then 
     getPara= DebugParamJDK & MemParams
    Else
     getPara= NormalParamJDK & MemParams
    End If 
   Else
    If (IsDebugMode) Then 
     getPara= DebugParam & MemParams
    Else
     getPara= NormalParam & MemParams
    End If  
   End If
      'MsgBox getPara, vbOkOnly, "JAMS"
  End Function
    
  Function InInterditList(value)  
   Isok = False
   For i = LBound(JVM_interdit) To UBound(JVM_interdit)
    'Si l'�lement i contient qqch
    If ( JVM_interdit(i) = value ) Then
     'on m�morise l'indice
     Isok = True
     'InInterditList = true
    End If
   Next  
   'InInterditList = false
   InInterditList = Isok  
  End Function

  Function lookInReg(strClef,boolJdk)
   'MsgBox "lookInReg"  & strClef, vbOKCancel + vbQuestion, "Erreur" 
   Dim testRet
   testRet = oReg.EnumKey(HKEY_LOCAL_MACHINE, strClef, arrSubKeys)
   If ( testRet <> 0 ) Then
    'MsgBox "EnumKey : "  & strClef & " Failure for " & testRet
    lookInReg = False
   Else
    BestJavaVersionPath = ""
    BestJavaVersion = JVM_min
    For Each subkey In arrSubKeys
     If ( subkey > max ) Then   
      strKeyPath = strClef+CStr(subkey)+"\"
      strValueName = "JavaHome"
      oReg.GetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,arrValues    
      Set objFSO = CreateObject("Scripting.FileSystemObject")
      If objFSO.FileExists(CStr(arrValues)+"\bin\java.exe") Then
       'Wscript.Echo OsType+" JRE version :"+CStr(subkey)+" -path :"+CStr(arrValues)
       If ( CStr(subkey) >= BestJavaVersion And CStr(subkey)<= JVM_max And Not InInterditList(CStr(subkey))  ) Then
        'Wscript.Echo OsType+" JRE version :"+CStr(subkey)+" -path :"+CStr(arrValues)+" OK"
        BestJavaVersionPath = CStr(arrValues)
        BestJavaVersion = CStr(subkey)
        BestIsJDK = boolJdk
       Else
        'Wscript.Echo OsType+" JRE version :"+CStr(subkey)+" -path :"+CStr(arrValues)+" Not OK"
       End If   
      End If   
     End If
    Next
   End If
  End Function

  Function execComm(StrCom,waiting)
    'MsgBox "Running"  & StrCom, vbOKCancel + vbQuestion, "Erreur" 
      If ( IsDebugMode ) Then 
     execComm = WshShell.Run(StrCom,1,waiting)
    Else
     execComm = WshShell.Run(StrCom,0,waiting)
    End If 
  End Function

  Dim WshShell
  Dim OsType
  Set WshShell = CreateObject("WScript.Shell")

  OsType = WshShell.RegRead("HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\PROCESSOR_ARCHITECTURE")
  If OsType = "x86" Then
   OsType = "x86"
  ElseIf OsType = "AMD64" Then
   OsType = "x64"
  End If

  Const HKEY_LOCAL_MACHINE = &H80000002
  If ( Wow_priority ) Then 
   strComputer = "."
   Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _ 
   strComputer & "\root\default:StdRegProv")
   lookInReg "SOFTWARE\JavaSoft\Java Runtime Environment\",False
   lookInReg "SOFTWARE\JavaSoft\Java Development Kit\",True
  End If
  If ( OsType = "x64" ) Then 
   Set objCtx = CreateObject("WbemScripting.SWbemNamedValueSet")
   objCtx.Add "__ProviderArchitecture", 32
   objCtx.Add "__RequiredArchitecture", True
   Set objLocator = CreateObject("Wbemscripting.SWbemLocator")
   Set objServices = objLocator.ConnectServer("","root\default","","",,,,objCtx)
   Set objStdRegProv = objServices.Get("StdRegProv") 
   'On regarde s'il y a une 64 bits de dispo
   lookInReg "SOFTWARE\JavaSoft\Java Runtime Environment\",False
   lookInReg "SOFTWARE\JavaSoft\Java Development Kit\",True

   If (BestJavaVersionPath = "") Then
    'Sinon on cherche la 32 bits
    lookInReg "SOFTWARE\Wow6432Node\JavaSoft\Java Runtime Environment\",False
    lookInReg "SOFTWARE\Wow6432Node\JavaSoft\Java Development Kit\",True
   End If 
  End If
  If ( Not Wow_priority ) Then 
   strComputer = "."
   Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _ 
   strComputer & "\root\default:StdRegProv")
   lookInReg "SOFTWARE\JavaSoft\Java Runtime Environment\",False
   lookInReg "SOFTWARE\JavaSoft\Java Development Kit\",True
  End If

  Set app = CreateObject("wscript.shell")
  JAVA_HOME= BestJavaVersionPath
  JAMS_ATTS = getPara()
  JAVA_BIN = """" & JAVA_HOME & "\bin\java.exe" & """"
  updaterCommand=  JAVA_BIN  & " -cp  " & """" & ".\updater\Updater.jar" & """" & " com.jump.updater.gui.CheckForUpdates " & """" & jumppath & """"
  'WScript.Echo updaterCommand
  Set WshShell = WScript.CreateObject("WScript.Shell")


  if ( BestJavaVersionPath = "" ) Then
   invalidList = ""
   For i = LBound(JVM_interdit) To UBound(JVM_interdit) - 1
    invalidList = invalidList & vbNewLine & "  - " & JVM_interdit(i)
   Next
   MsgBox "Aucune version de java valide n'a �t� trouv�e. Les versions valides sont les versions de " & JVM_min & " � " & JVM_max & " sauf les versions : " & invalidList, vbOKOnly, "Erreur" 
   WScript.Quit
  End If

  Return = execComm(updaterCommand, True)

  'WScript.Echo "Launching update " & Return
    ' temporisation a ete ajoute car sur certaines machine, JAMS ne se lance pas alors qu'avec une message boxpour temporise un peu, ca marche
    If (temporisation) Then
      MsgBox "Lancement", vbOkOnly, "JAMS"
    End If

  jumpCommand = JAVA_BIN &  JAMS_ATTS & " -jar jams.jar" 
  Select Case (Return) 
   Case 0: 
    'execComm jumpCommand,false
   Case 1: 
    MsgBox "Version non existante"
   Case 2: 

    tempPath = CStr(oFSO.GetSpecialFolder(2))'TemporaryFolder

    oFSO.CopyFolder ".\updater" , tempPath & "\updater" , True
    oFSO.CopyFile ".\updater\Updater.jar", tempPath & "\updater\"
    tmpUpdaterPath = tempPath & "\updater\Updater.jar"
        WshShell.CurrentDirectory = tempPath
    tmpUpdateCommand = JAVA_BIN  & " -cp " & """" & tmpUpdaterPath & """" & " com.jump.updater.gui.UpdateExtendedGui " & """" & jumppath & """"
        'MsgBox tmpUpdateCommand, vbOkOnly, "lol"
     'WScript.Echo(tmpUpdateCommand)
    Return2 = execComm(tmpUpdateCommand, True)
         WshShell.CurrentDirectory = jumppath
    'MsgBox tmpUpdateCommand, vbOkOnly, "lol" & Return2
    If ( Return2 > 0 ) Then 'cas d'erreur 
     If ( MsgBox("L'update a echou�, Voulez-vous tout de m�me lancer l'application ?" , vbOKCancel + vbQuestion, "Erreur") = 1 ) Then
      execComm jumpCommand, False
     End If
    Else
     execComm jumpCommand, False 
    End If
   Case 3:
    MsgBox "Probl�me de connexion au serveur de mise � jour"
   Case 6:
    MsgBox "Le fichier 'version_details.xml' est corrompu"
   Case 10:
    MsgBox "Le dossier temporaire n'a pas pu �tre cr�er"
   Case 11:
    MsgBox "Probl�me de droit d'�criture"
   Case 12:
    MsgBox "Erreur de param�trage"
   Case Else 
   WScript.Echo "Valeur de retour non prise en charge :" & CStr(Return)
  End Select
  If ( Return <> 2 ) Then
   execComm jumpCommand,False
  End If
   </script>
</job>


Avez-vous déjà eu le souci ? Quand je regarde sur google ils précisent qu'il y-a généralement une case "Null" ce que je ne retrouve pas ici ...

Merci D'avance
J
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ICI

Merci d'y penser dans tes prochains messages.