Bonjour,
J'ai pas mal cherché (Recherche et FAQ), mais je n'ai pas trouvé mon bonheur. En espérant que la réponse n'est pas sous mes yeux![]()
J'ai un script de mise à jour qui doit enregistrer une dll, bien évidement, il faut être admin, donc runas et tout et tout.
Le code (simplifié) ressemble à ça:
Là, aucun problème, ça marche, c'est cool. Seulement voilà, dans le script complet, la variable 'File' arrive toute bien initialisée avec un magnifique nom long et son espace au milieu:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Set wsh=WScript.CreateObject("WScript.Shell") File = "C:\Progra~1\Nexfi\TrackerDev\Malib.dll" regCmd = "regsvr32 " & File RunasCmd = "runas /user:admin """ & regCmd& """" wsh.Run RunasCmd
Du coup, le regsvr32 m'explique gentilment qu'il ne trouve pas C:\Program
Code : Sélectionner tout - Visualiser dans une fenêtre à part File = "C:\Program Files\Nexfi\TrackerDev\Malib.dll"
Bon, ben moi, pas con, j'ajoute des guillemets, parceque les guillements, c'est bien:![]()
Et là, déception, la chaîne de caractères finale ressemble à ça:
Code : Sélectionner tout - Visualiser dans une fenêtre à part File = """C:\Program Files\Nexfi\TrackerDev\Malib.dll"""
runas /user:javault_m "regsvr32 "C:\Program Files\Nexfi\TrackerDev\Malib.dll""
Et bien entendu, ça ne fonctionne pas très bien
J'ai essayé pas mal de combinaisons avec, entre autre, utilisation de cmd /c, rien à faire, il y a toujours au final une commande dont l'argument doit être entre guillement, commande qui prend elle aussi un paramètre entre guillemet...
Je vais poursuivre mes recherches, mais si quelqu'un a la réponse, je suis plutôt preneur.
Merci d'avance.
Marc
Partager