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

Fermé
piouf13 Messages postés 3 Date d'inscription jeudi 12 mars 2015 Statut Membre Dernière intervention 16 mars 2015 - Modifié par piouf13 le 12/03/2015 à 17:39
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 16 mars 2015 à 12:13
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 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
13 mars 2015 à 07:59
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 jeudi 12 mars 2015 Statut Membre Dernière intervention 16 mars 2015
Modifié par piouf13 le 13/03/2015 à 09:56
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 jeudi 12 mars 2015 Statut Membre Dernière intervention 16 mars 2015
16 mars 2015 à 11:46
Personne a une petite idée?
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
16 mars 2015 à 12:13
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