Vbscript probleme de "runas" via excel VBA lors d'une 1ere exécution
16 réponses
quicksilvain
Salut a tous
Avec excel vba je dois faire appel a un fichier vbscript avec une demande d’élévation pour des mis à jour, cela fonctionne très bien si on a déjà exécuter un vbscript avec une demande d’élévation sur le fichier vbscript lui même.
Savez vous pourquoi lorsque j'exécute un vbscript via excel vba lors d'une 1ere exécution (sans avoir jamais exécuter de vbscript dans le PC) ça fonctionne pas?
Par contre, si j'exécute le vbscript lui même et que je retourne dans excel vba pour exécuter ce vbscript (et même d'autres) ça fonctionne?
Je trouve ça bizarre..
Merci
--
This post on narkive:
http://narkive.com/TLYkoKXK
Finalement après plusieurs test, et après avoir essayer tout les codes ci-dessus ça fonctionne pas..
Je réexplique mon problème afin d'éclaircir..
Voici le code de ma macro VBA "ShellExecute" pour lancer le vbscript:
Dim ObjShell As Object Set ObjShell = CreateObject("Shell.Application") ObjShell.ShellExecute "Wscript", _ "C:Fichier.vbs", "", "runas", 0
Mais malheureusement sur plusieurs PC même en réseaux lancer le vbscript dans une macro VBA en demandant un élévation avec ShellExecute sur un PC qui n'a jamais lancer de vbscript en double cliquant dessus ne fonctionne pas.. J'ai cette erreur : "Le service ne peut pas accepter de commande en ce moment"
Par contre si auparavant on lance un vbscript quelconque qui contient le code ci dessous (demande d'élévation) en double cliquant dessus directement puis je retourne sur Excel pour lancer le vbscript depuis la macro ShellExecute ça fonctionne..
Voici le code que contient le vbscript pour pouvoir cliquer directement sans passer par la macro VBA:
If WScript.Arguments.length =0 Then Set objShell = CreateObject("Shell.Application") objShell.ShellExecute "WScript.exe", Chr(34) & _ WScript.ScriptFullName & Chr(34) & " uac", "", "runas", 1 Else
'Mon code ici
End If
C'est un gros problème car la plupart des PC n'ont jamais exécuter de vbscript donc ma macro ne fonctionne pas.
C'est fou ça faut il initialiser le moteur "Wscript" ou "Cscript" pour pouvoir lancer un vbscript depuis une autre application.. ?
Merci -- This post on narkive: http://narkive.com/TLYkoKXK.12
Merci MichD
Finalement après plusieurs test, et après avoir essayer tout les codes ci-dessus ça fonctionne pas..
Je réexplique mon problème afin d'éclaircir..
Voici le code de ma macro VBA "ShellExecute" pour lancer le vbscript:
Dim ObjShell As Object
Set ObjShell = CreateObject("Shell.Application")
ObjShell.ShellExecute "Wscript", _
"C:Fichier.vbs", "", "runas", 0
Mais malheureusement sur plusieurs PC même en réseaux lancer le vbscript dans une macro VBA en demandant un élévation avec ShellExecute sur un PC qui n'a jamais lancer de vbscript en double cliquant dessus ne fonctionne pas.. J'ai cette erreur : "Le service ne peut pas accepter de commande en ce moment"
Par contre si auparavant on lance un vbscript quelconque qui contient le code ci dessous (demande d'élévation) en double cliquant dessus directement puis je retourne sur Excel pour lancer le vbscript depuis la macro ShellExecute ça fonctionne..
Voici le code que contient le vbscript pour pouvoir cliquer directement sans passer par la macro VBA:
If WScript.Arguments.length =0 Then
Set objShell = CreateObject("Shell.Application")
objShell.ShellExecute "WScript.exe", Chr(34) & _
WScript.ScriptFullName & Chr(34) & " uac", "", "runas", 1
Else
'Mon code ici
End If
C'est un gros problème car la plupart des PC n'ont jamais exécuter de vbscript donc ma macro ne fonctionne pas.
C'est fou ça faut il initialiser le moteur "Wscript" ou "Cscript" pour pouvoir lancer un vbscript depuis une autre application.. ?
Merci
--
This post on narkive:
http://narkive.com/TLYkoKXK.12
Finalement après plusieurs test, et après avoir essayer tout les codes ci-dessus ça fonctionne pas..
Je réexplique mon problème afin d'éclaircir..
Voici le code de ma macro VBA "ShellExecute" pour lancer le vbscript:
Dim ObjShell As Object Set ObjShell = CreateObject("Shell.Application") ObjShell.ShellExecute "Wscript", _ "C:Fichier.vbs", "", "runas", 0
Mais malheureusement sur plusieurs PC même en réseaux lancer le vbscript dans une macro VBA en demandant un élévation avec ShellExecute sur un PC qui n'a jamais lancer de vbscript en double cliquant dessus ne fonctionne pas.. J'ai cette erreur : "Le service ne peut pas accepter de commande en ce moment"
Par contre si auparavant on lance un vbscript quelconque qui contient le code ci dessous (demande d'élévation) en double cliquant dessus directement puis je retourne sur Excel pour lancer le vbscript depuis la macro ShellExecute ça fonctionne..
Voici le code que contient le vbscript pour pouvoir cliquer directement sans passer par la macro VBA:
If WScript.Arguments.length =0 Then Set objShell = CreateObject("Shell.Application") objShell.ShellExecute "WScript.exe", Chr(34) & _ WScript.ScriptFullName & Chr(34) & " uac", "", "runas", 1 Else
'Mon code ici
End If
C'est un gros problème car la plupart des PC n'ont jamais exécuter de vbscript donc ma macro ne fonctionne pas.
C'est fou ça faut il initialiser le moteur "Wscript" ou "Cscript" pour pouvoir lancer un vbscript depuis une autre application.. ?
Merci -- This post on narkive: http://narkive.com/TLYkoKXK.12
MichD
A ) Lorsque je demande des Infos. sur ton environnement, je pensais avoir droit à des réponses!
B ) Ton problème n'est pas directement relié à Excel, mais à ton installation de Windows.
Je te suggère fortement de poser ta question sur un forum Windows pour répondre à ta question: "C'est fou ça faut il initialiser le moteur "Wscript" ou "Cscript" pour pouvoir lancer un vbscript depuis une autre application.. ?"
Lorsque tu auras trouvé, il y a probablement des usagers intéressés par la réponse...Si cela te tente de partager...
A ) Lorsque je demande des Infos. sur ton environnement, je pensais avoir
droit à des réponses!
B ) Ton problème n'est pas directement relié à Excel, mais à ton
installation de Windows.
Je te suggère fortement de poser ta question sur un forum Windows pour
répondre à ta question:
"C'est fou ça faut il initialiser le moteur "Wscript" ou "Cscript" pour
pouvoir lancer un vbscript depuis une autre application.. ?"
Lorsque tu auras trouvé, il y a probablement des usagers intéressés par la
réponse...Si cela te tente de partager...
A ) Lorsque je demande des Infos. sur ton environnement, je pensais avoir droit à des réponses!
B ) Ton problème n'est pas directement relié à Excel, mais à ton installation de Windows.
Je te suggère fortement de poser ta question sur un forum Windows pour répondre à ta question: "C'est fou ça faut il initialiser le moteur "Wscript" ou "Cscript" pour pouvoir lancer un vbscript depuis une autre application.. ?"
Lorsque tu auras trouvé, il y a probablement des usagers intéressés par la réponse...Si cela te tente de partager...
quicksilvain
Oui désolé j'ai Windows 7 pro 64 bits et je suis Admin
J'ai déjà posé la question sur un forum Windows mais j'ai eu aucune réponse..
Si je la trouve, je la posterais ici
Encore merci -- This post on narkive: http://narkive.com/TLYkoKXK.14
Oui désolé j'ai Windows 7 pro 64 bits et je suis Admin
J'ai déjà posé la question sur un forum Windows mais j'ai eu aucune réponse..
Si je la trouve, je la posterais ici
Encore merci
--
This post on narkive:
http://narkive.com/TLYkoKXK.14
End Sub '--------------------------------------------------------
Es-tu certain de ne pas être victime d'un espiogiciel? Pour cela, tu peux télécharger et installer la version gratuite ici : https://www.malwarebytes.org/
À tout hasard, essaie ceci, je ne peux pas vraiment tester ceci...
'--------------------------------------------------------
Sub RunAsAdmin()
Dim Fichier As String, ObjShell As Object
End Sub
'--------------------------------------------------------
Es-tu certain de ne pas être victime d'un espiogiciel?
Pour cela, tu peux télécharger et installer la version gratuite ici :
https://www.malwarebytes.org/
End Sub '--------------------------------------------------------
Es-tu certain de ne pas être victime d'un espiogiciel? Pour cela, tu peux télécharger et installer la version gratuite ici : https://www.malwarebytes.org/
quicksilvain
Merci MichD votre solution fonctionne parfaitement je suis très content..
Pourquoi j'aurais un espiogiciel?
Encore merci mille fois.. -- This post on narkive: http://narkive.com/TLYkoKXK.16
Merci MichD votre solution fonctionne parfaitement je suis très content..
Pourquoi j'aurais un espiogiciel?
Encore merci mille fois..
--
This post on narkive:
http://narkive.com/TLYkoKXK.16
Merci MichD votre solution fonctionne parfaitement je suis très content..
Pourquoi j'aurais un espiogiciel?
Encore merci mille fois.. -- This post on narkive: http://narkive.com/TLYkoKXK.16
MichD
| Pourquoi j'aurais un espiogiciel?
**** Personne n'en veut...Mais habituellement, il s'installe sans demander la permission un peu à la manière d'un virus. Dans certains cas, certains de ces petits programmes ont des effets indésirables avec Windows ou les applications Microsoft.
| Pourquoi j'aurais un espiogiciel?
**** Personne n'en veut...Mais habituellement, il s'installe
sans demander la permission un peu à la manière d'un
virus. Dans certains cas, certains de ces petits programmes
ont des effets indésirables avec Windows ou les
applications Microsoft.
**** Personne n'en veut...Mais habituellement, il s'installe sans demander la permission un peu à la manière d'un virus. Dans certains cas, certains de ces petits programmes ont des effets indésirables avec Windows ou les applications Microsoft.