Enregistrement de DLL avec WMI

cs_zesamoth Messages postés 12 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 8 avril 2008 - 7 avril 2008 à 17:57
cs_zesamoth Messages postés 12 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 8 avril 2008 - 8 avril 2008 à 14:32
Bonjour tout le monde,

Je sollicite votre aide pour un problème un peu pointu, je tourne en rond depuis ce matin et j'ai épuisé ma réserve d'imagination... Je n'arrive toujours pas à solutionner mon problème. Le but de mon opération est d'enregistrer depuis mon poste une dll distante sur un serveur distant. Je pensais pour cela créer un process regsvr32 grâce à WMI sur la machine distante mais ya rien à faire j'y arrive pas.... I need somebody help comme disais les "coupes au bol"

Nom du serveur distant : Ntinctx7
Chemin de la dll : Ntinsrv1\applis$\frmDossierDAT.dll, donc sur un autre serveur
Le tout lancé depuis localhost....

<hr size= "2" width="100%" /> Le code:
     Dim wmiConnexion As Object
         'Création de la connexion WMI
        Set wmiConnexion = GetObject("winmgmts:{impersonationLevel=impersonate}!\\Ntinctx7\root\cimv2")
    
     Dim pId As Integer, resReg As Integer, resUnreg As Integer
     Dim objstartup As Object, objconfig As Object, objprocess As Object
     Dim dllPath as string, commandUnreg As String, commandReg As String
      
        'Création des paramètres du process à créer  
       Set objstartup = wmiConnexion.Get("Win32_ProcessStartup")
       Set objconfig = objstartup.SpawnInstance_
       objconfig.ShowWindow = 2
       Set objprocess = wmiConnexion.Get("Win32_Process")
      
       'Création des process à lancer
       dllPath = "\\Ntinsrv1\applis$\frmDossierDAT.dll"
       commandUnreg = "regsvr32 /u /s """ & dllPath & """" 'soit regsvr32 /u /s "\\Ntinsrv1\applis$\frmDossierDAT.dll"
       commandReg = "regsvr32 /s """ & dllPath & """" 'soit regsvr32 /s "\\Ntinsrv1\applis$\frmDossierDAT.dll"
      
       'Execution des process
       res = objprocess.Create(commandUnreg, Null, objconfig, pId)
       res2 = objprocess.Create(commandReg, Null, objconfig, pId)
       If res + res2 <> 0 Then
           MsgBox2 "Erreur dans la création du processus !" & vbCrLf & "Erreur " & res & ": " & convertProcessError(res), 9
       Else
           MsgBox2 "Processus d'enregistrement de la DLL terminé avec succès.", 11
       End If
       Set objstartup = Nothing
       Set objconfig = Nothing
       Set objprocess = Nothing
<hr size="2" width="100%" />Je précise que la commande regsvr32 /s "\\Ntinsrv1\applis$\frmDossierDAT.dll" fonctionne si elle est éxecutée depuis le serveur grâce au menu démarrer-executer. De plus l'instruction objprocess.Create ne renvoit pas d'erreurs (renvoit donc 0). A ne plus rien y comprendre....

Donc si quelqu'un entrevoit une solution je suis preneur. Ou alors si quelqu'un à une idée pour aboutir à mes fins sans forcément utiliser WMI je suis preneur aussi .

Merci pour votre aide

zesamoth

1 réponse

cs_zesamoth Messages postés 12 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 8 avril 2008
8 avril 2008 à 14:32
Salut tous,

Je sais que j'ai pas laissé un énorme temps de réflexion mais je souhaitais tout de même modifier ma requête qui est peut être un peu compliquée ou tout du moins pas forcément réalisable...
Alors tout simplement est ce que quelqu'un connait un moyen, pas forcément simple, mais efficace pour enregistrer une dll depuis localhost  sur un serveur distant depuis un chemin UNC qui n'est ni localhost ni le serveur distant.

Merci pour votre aide
0
Rejoignez-nous