Vbscript probleme de "runas" via excel VBA lors d'une 1ere exécu

piouf13 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   -
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?

Voici le message d'erreur: le service ne peut pas accepter des commandes en ce moment

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



A voir également:

3 réponses

michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Bonjour
qu'appelles tu par "demande d'élévation"
Au besoin, mettre le classeur sans données confidentielles en pièce jointe sur https://www.cjoint.com/
et coller le lien proposé dans le message de réponse
Dans l'attente

0
piouf13 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
Merci

La plupart des données sont très confidentielles.. et j'ai besoin d'une demande d'élévation pour faire certaine taches

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
0
piouf13 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
Personne a une petite idée?
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Bonjour,

La solution que t'apporte MichD ne te suffit pas?
cf : https://www.generation-nt.com/reponses/vbscript-probleme-runas-via-excel-vba-lors-1ere-execution-entraide-4258915.html?page=2

Sub RunAsAdmin()
Dim Fichier As String, ObjShell As Object

Fichier = "C:UsersTon ProfildocumentsTonFichier.vbs"

Set ObjShell = CreateObject("Shell.Application")

ObjShell.ShellExecute "CMD.exe", _
"cscript //h:cscript", _
"runas:" & Environ("Username"), "", 0

ObjShell.ShellExecute "cscript.exe", _
CStr(Fichier), "runas:" & Environ("Username"), "", 0

End Sub


Ou alors vous êtes plusieurs étudiants sur ce coup là...
0