IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Erreur d'exécution Microsoft VBScript (0x800A01A8) Objet requis


Sujet :

VBScript

  1. #1
    Futur Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 3
    Par défaut Erreur d'exécution Microsoft VBScript (0x800A01A8) Objet requis
    Bonjour,

    Je suis sur un script pour la migration des imprimantes, j'ai le message suiviant lors l'ajout de ligne dans le fichier de log :

    Ligne 53 Caract 1, objet requis

    Si vous avez quelques minutes pour m'aider, je vous en remercie.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    Option Explicit
    Dim WshNetwork
     
    Dim objNetwork
    Dim colprinters
    Dim PrinterName
    Dim i
    Dim oldPrinter
    Dim newPrinter
    Dim printerfound
    Dim oldserver
    Dim newserver
    dim len1, len2
    dim objFSO, strFolder, fso, fl
     
     
    'paramétrage du nom du serveur, nouveau et ancien, création du fichier Log dans C:\LOG
     
    'oldserver = InputBox("Taper le nom de l'ancien serveur", "Taper le nom de l'ancien serveur", "Ancien serveur")
    'newserver = InputBox("Taper le nom du nouveau serveur", "Taper le nom ddu nouveau serveur", "Nouveau serveur")
    oldserver = "etdssrv013"
    newserver = "bycssrv177"
     
     
     
    strFolder = "C:\LOG\MIGRATION IMPRIMANTE"
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    If Not objFSO.FolderExists(strFolder) Then
       objFSO.CreateFolder(strFolder)
    End If
     
    	Set fso = CreateObject("Scripting.FileSystemObject")
    Set fl = fso.OpenTextFile("C:\LOG\MIGRATION IMPRIMANTE\Migration.log", 2, True)
     
    		fl.WriteLine( "***  Migration des imprimantes " & Now & " ***" )
    		fl.WriteLine ( "******************************************************************************************" )
     
    ' Trouver la liste des imprimantes installés
    ' et scanner les imprimantes à migrer.
     
    Set objNetwork = WScript.CreateObject("WScript.Network")
     
    ' Enumère les imprimnates installés sur le PC
    Set colPrinters = objNetwork.EnumPrinterConnections
    For i = 0 to colPrinters.Count -1 Step 2
      printerfound = "no"
     
    ' Vérifie que l'imprimante était sur l'ancien serveur
     If UCase(mid(colprinters.Item (i + 1),3,len(oldserver))) = ucase(oldserver) Then
         oldPrinter = colprinters.Item (i + 1)
         wscript.echo oldprinter
     
    fl.WriteLine ( "Ancienne valeur : " & oldprinter )
     
    Set fso = Nothing
         len1 = len(oldserver) + 2
         len2 = len(oldprinter) - len1
         newPrinter = "\\" & newserver & right(oldprinter,len2)
    		fl.WriteLine( "Nouvelle valeur : " & "\\" & newserver & right(oldprinter,len2) )
     
         printerfound = "yes"
     End If
     
    'Si l'imprimante est sur l'ancien serveur, il le migre
    If printerfound = "yes" Then
       SwapPrinter
    End If
     
    Next
     
     
    WScript.Echo "Migration des imprimantes -> OK"
     
    fl.WriteLine( "Migration des imprimantes -> OK" )
     
    Sub  SwapPrinter
     
    Set WshNetwork = CreateObject("WScript.Network")
     
    WshNetwork.AddWindowsPrinterConnection newPrinter
    fl.WriteLine( "Ajout nouvelle imprimante -> OK" )
     
    WshNetwork.RemovePrinterConnection oldPrinter
    fl.WriteLine( "Suppression ancienne imprimante -> OK" )
    fl.WriteLine ( "******************************************************************************************" )
    fl.Close : Set fl = Nothing
     
     
    End Sub
    WScript.quit
    merci

  2. #2
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 302
    Par défaut
    bonjour,
    pas de parenthèses
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fl.WriteLine "Ancienne valeur : " & oldprinter
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

  3. #3
    Futur Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 3
    Par défaut
    Bonjour et merci pour ta réponse.
    Ca ne règle pas le problème

    J'ai hélas toujours le même message.

    Il traite correctement la 1ère imprimante, arrivé à la seconde j'ai ce message.

  4. #4
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 302
    Par défaut
    ta boucle d'énumération 45..69 appelle la procédure SwapPrinter dont la ligne 86 ferme le fichier et désalloue l'objet f1
    alors que la boucle continue de l'utiliser
    donc supprimer la ligne 86...
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

  5. #5
    Futur Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 3
    Par défaut
    Ah, effectivement. Ca tourne beaucoup mieux.
    Merci pour ton aide. Bon weekend.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 19/07/2010, 15h35
  2. Réponses: 10
    Dernier message: 30/09/2008, 15h58
  3. Réponses: 11
    Dernier message: 08/07/2008, 20h55
  4. Réponses: 2
    Dernier message: 11/04/2007, 15h04
  5. Réponses: 2
    Dernier message: 24/05/2006, 22h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo