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 -
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
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:
- Vbscript probleme de "runas" via excel VBA lors d'une 1ere exécu
- Liste déroulante excel - Guide
- Déplacer une colonne excel - Guide
- Word et excel gratuit - Guide
- Si ou excel - Guide
- Trier une colonne excel - Guide
3 réponses
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
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
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:
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:
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
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
Personne a une petite idée?
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
Ou alors vous êtes plusieurs étudiants sur ce coup là...
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à...