Script VBS (Runas.exe) le mot de passe n'est pas conservé tout le temps
6 réponses
Glenn Gagné
Bonjour,
J'ai trouvé un petit script super intéressant qui permet d'exécuter un
programme "en tant que" pour les circonstances facheuses où certains
programmes ne fonctionnent qu'avec un compte administrateur. Ce script
permet de fournir le mot de passe automatiquement (pour que l'utilisateur
n'aie pas à le taper) *** Bon je sais que ça peut être pas super
sécuritaire, mais c'est une solution de dépannage aussi ***.
Mon problème, c'est qu'après un certain temps le mot de passe n'est plus
saisit automatiquement et je ne compredn pas pourquoi ... ? C'est très
étrange que ça marche sans problème puis que tout à coup ça ne marche
plus...
Voici le script VBS:
----------------------------------------
Option explicit
dim oShell
set oShell= Wscript.CreateObject("WScript.Shell")
'Mot de passe + un tilde (~) à la fin.
oShell.Sendkeys "motdepasse~"
Wscript.Quit
----------------------------------------
C'est le tilde à la fin du mot de passe qui fait la différence, je sais pas
exactement comment la console réagit à cette instruction, mais c'est comme
un CHR(13) on dirait.
Si quelqu'un pourrait me donner une explication pourquoi ça ne marche pas
toujours, j'aimerais bien ! J'ai tenté de prolonger le temps d'attente
(sleep 1000) pour laisser le temps au programme de s'exécuter, mais c'est la
même chose.
'Mot de passe + un tilde (~) à la fin. oShell.Sendkeys "motdepasse~" Wscript.Quit
----------------------------------------
C'est le tilde à la fin du mot de passe qui fait la différence, je sais pas exactement comment la console réagit à cette instruction, mais c'est comme un CHR(13) on dirait.
Je confirme, le tilde correspond à l'appui sur la touche Entrée pour la méthode SendKeys. Tu aurais pu aussi écrire:
oShell.SendKeys "motdepasse{ENTER}"
Si quelqu'un pourrait me donner une explication pourquoi ça ne marche pas toujours, j'aimerais bien ! J'ai tenté de prolonger le temps d'attente (sleep 1000) pour laisser le temps au programme de s'exécuter, mais c'est la même chose.
Une explication possible, c'est que l'invite de commande n'a pas la main au moment où SendKeys envoie le mot de passe, puisque rien dans le script ne force Windows à passer la main à cette fenêtre en particulier. Or, SendKeys ne fait qu'envoyer les touches à la fenêtre active, quelle qu'elle soit.
Une parade possible (et classique avec SendKeys) consiste à forcer l'activation au premier plan de la fenêtre concernée, avec la méthode AppActivate. Il faut lui passer le titre de la fenêtre en question. En admettant que la fenêtre s'appelle "Invite de commande - Mon programme", ton script devient:
--- couper ici --- set oShell= Wscript.CreateObject("WScript.Shell")
'Mot de passe + un tilde (~) à la fin.
oShell.Sendkeys "motdepasse~"
Wscript.Quit
----------------------------------------
C'est le tilde à la fin du mot de passe qui fait la différence, je sais
pas
exactement comment la console réagit à cette instruction, mais c'est comme
un CHR(13) on dirait.
Je confirme, le tilde correspond à l'appui sur la touche Entrée pour la
méthode SendKeys. Tu aurais pu aussi écrire:
oShell.SendKeys "motdepasse{ENTER}"
Si quelqu'un pourrait me donner une explication pourquoi ça ne marche pas
toujours, j'aimerais bien ! J'ai tenté de prolonger le temps d'attente
(sleep 1000) pour laisser le temps au programme de s'exécuter, mais c'est
la
même chose.
Une explication possible, c'est que l'invite de commande n'a pas la main au
moment où SendKeys envoie le mot de passe, puisque rien dans le script ne
force Windows à passer la main à cette fenêtre en particulier. Or, SendKeys
ne fait qu'envoyer les touches à la fenêtre active, quelle qu'elle soit.
Une parade possible (et classique avec SendKeys) consiste à forcer
l'activation au premier plan de la fenêtre concernée, avec la méthode
AppActivate. Il faut lui passer le titre de la fenêtre en question. En
admettant que la fenêtre s'appelle "Invite de commande - Mon programme", ton
script devient:
--- couper ici ---
set oShell= Wscript.CreateObject("WScript.Shell")
'Mot de passe + un tilde (~) à la fin. oShell.Sendkeys "motdepasse~" Wscript.Quit
----------------------------------------
C'est le tilde à la fin du mot de passe qui fait la différence, je sais pas exactement comment la console réagit à cette instruction, mais c'est comme un CHR(13) on dirait.
Je confirme, le tilde correspond à l'appui sur la touche Entrée pour la méthode SendKeys. Tu aurais pu aussi écrire:
oShell.SendKeys "motdepasse{ENTER}"
Si quelqu'un pourrait me donner une explication pourquoi ça ne marche pas toujours, j'aimerais bien ! J'ai tenté de prolonger le temps d'attente (sleep 1000) pour laisser le temps au programme de s'exécuter, mais c'est la même chose.
Une explication possible, c'est que l'invite de commande n'a pas la main au moment où SendKeys envoie le mot de passe, puisque rien dans le script ne force Windows à passer la main à cette fenêtre en particulier. Or, SendKeys ne fait qu'envoyer les touches à la fenêtre active, quelle qu'elle soit.
Une parade possible (et classique avec SendKeys) consiste à forcer l'activation au premier plan de la fenêtre concernée, avec la méthode AppActivate. Il faut lui passer le titre de la fenêtre en question. En admettant que la fenêtre s'appelle "Invite de commande - Mon programme", ton script devient:
--- couper ici --- set oShell= Wscript.CreateObject("WScript.Shell")
"Jacques Barathon [MS]" wrote in message news:Oec4$L% <...>
Une parade possible (et classique avec SendKeys) consiste à forcer l'activation au premier plan de la fenêtre concernée, avec la méthode AppActivate. Il faut lui passer le titre de la fenêtre en question. En admettant que la fenêtre s'appelle "Invite de commande - Mon programme", ton script devient:
En fait, le titre de la fenêtre sera plutôt du genre "Invite de commande - runas /user:etc", à toi de personnaliser de toute façon...
Jacques
"Jacques Barathon [MS]" <jbaratho@online.microsoft.com> wrote in message
news:Oec4$L%23kHHA.208@TK2MSFTNGP05.phx.gbl...
<...>
Une parade possible (et classique avec SendKeys) consiste à forcer
l'activation au premier plan de la fenêtre concernée, avec la méthode
AppActivate. Il faut lui passer le titre de la fenêtre en question. En
admettant que la fenêtre s'appelle "Invite de commande - Mon programme",
ton script devient:
En fait, le titre de la fenêtre sera plutôt du genre "Invite de commande -
runas /user:etc", à toi de personnaliser de toute façon...
"Jacques Barathon [MS]" wrote in message news:Oec4$L% <...>
Une parade possible (et classique avec SendKeys) consiste à forcer l'activation au premier plan de la fenêtre concernée, avec la méthode AppActivate. Il faut lui passer le titre de la fenêtre en question. En admettant que la fenêtre s'appelle "Invite de commande - Mon programme", ton script devient:
En fait, le titre de la fenêtre sera plutôt du genre "Invite de commande - runas /user:etc", à toi de personnaliser de toute façon...
Jacques
Gilles LAURENT
"Glenn Gagné" a écrit dans le message de news:% | Bonjour,
Bonjour,
| J'ai trouvé un petit script super intéressant qui permet d'exécuter un | programme "en tant que" pour les circonstances facheuses où certains | programmes ne fonctionnent qu'avec un compte administrateur. Ce script | permet de fournir le mot de passe automatiquement (pour que | l'utilisateur n'aie pas à le taper) *** Bon je sais que ça peut être | pas super sécuritaire, mais c'est une solution de dépannage aussi ***.
Une solution beaucoup plus robuste consiste à créer un job CPAU : http://www.joeware.net/freetools/tools/cpau/index.htm
Le job CPAU (chiffré) embarquera toutes les informations nécessaires à l'exécution du programme (les identifiants de connexion, le nom et chemin d'accès du programme à exécuter ainsi que les éventuels paramètres). Je vous invite à consulter la syntaxe et les quelques exemples disponibles sur cette page : http://www.joeware.net/freetools/tools/cpau/usage.htm
-- Gilles LAURENT http://glsft.free.fr
"Glenn Gagné" <glenn_gagne@hotmail.com> a écrit dans le message de
news:%23Wu4kg9kHHA.1624@TK2MSFTNGP02.phx.gbl
| Bonjour,
Bonjour,
| J'ai trouvé un petit script super intéressant qui permet d'exécuter un
| programme "en tant que" pour les circonstances facheuses où certains
| programmes ne fonctionnent qu'avec un compte administrateur. Ce script
| permet de fournir le mot de passe automatiquement (pour que
| l'utilisateur n'aie pas à le taper) *** Bon je sais que ça peut être
| pas super sécuritaire, mais c'est une solution de dépannage aussi ***.
Une solution beaucoup plus robuste consiste à créer un job CPAU :
http://www.joeware.net/freetools/tools/cpau/index.htm
Le job CPAU (chiffré) embarquera toutes les informations nécessaires à
l'exécution du programme (les identifiants de connexion, le nom et
chemin d'accès du programme à exécuter ainsi que les éventuels
paramètres). Je vous invite à consulter la syntaxe et les quelques
exemples disponibles sur cette page :
http://www.joeware.net/freetools/tools/cpau/usage.htm
"Glenn Gagné" a écrit dans le message de news:% | Bonjour,
Bonjour,
| J'ai trouvé un petit script super intéressant qui permet d'exécuter un | programme "en tant que" pour les circonstances facheuses où certains | programmes ne fonctionnent qu'avec un compte administrateur. Ce script | permet de fournir le mot de passe automatiquement (pour que | l'utilisateur n'aie pas à le taper) *** Bon je sais que ça peut être | pas super sécuritaire, mais c'est une solution de dépannage aussi ***.
Une solution beaucoup plus robuste consiste à créer un job CPAU : http://www.joeware.net/freetools/tools/cpau/index.htm
Le job CPAU (chiffré) embarquera toutes les informations nécessaires à l'exécution du programme (les identifiants de connexion, le nom et chemin d'accès du programme à exécuter ainsi que les éventuels paramètres). Je vous invite à consulter la syntaxe et les quelques exemples disponibles sur cette page : http://www.joeware.net/freetools/tools/cpau/usage.htm
-- Gilles LAURENT http://glsft.free.fr
Michel Claveau
Bosnoir !
Dans le même genre : http://www.ponx.org/batutils (chercher, à gauche, runas.exe)
à noter, dans la dernière version, une astuce : si le fichier de paramètres est "toto.par", en renommant (copiant) "runas.exe" comme "toto.exe", il sera inutile d'utiliser un paramètre.
-- @-salutations
Michel Claveau
Bosnoir !
Dans le même genre :
http://www.ponx.org/batutils
(chercher, à gauche, runas.exe)
à noter, dans la dernière version, une astuce : si le fichier de
paramètres est "toto.par", en renommant (copiant) "runas.exe" comme
"toto.exe", il sera inutile d'utiliser un paramètre.
Dans le même genre : http://www.ponx.org/batutils (chercher, à gauche, runas.exe)
à noter, dans la dernière version, une astuce : si le fichier de paramètres est "toto.par", en renommant (copiant) "runas.exe" comme "toto.exe", il sera inutile d'utiliser un paramètre.
-- @-salutations
Michel Claveau
moi
Notre ami Michel Claveau tapota :
Bosnoir !
Dans le même genre : http://www.ponx.org/batutils (chercher, à gauche, runas.exe)
à noter, dans la dernière version, une astuce : si le fichier de paramètres est "toto.par", en renommant (copiant) "runas.exe" comme "toto.exe", il sera inutile d'utiliser un paramètre.
Bonsoir,
Très élégante ruse, j'aime bien ..., j'adopte !
A+
HB
Notre ami Michel Claveau tapota :
Bosnoir !
Dans le même genre :
http://www.ponx.org/batutils
(chercher, à gauche, runas.exe)
à noter, dans la dernière version, une astuce : si le fichier de
paramètres est "toto.par", en renommant (copiant) "runas.exe" comme
"toto.exe", il sera inutile d'utiliser un paramètre.
Dans le même genre : http://www.ponx.org/batutils (chercher, à gauche, runas.exe)
à noter, dans la dernière version, une astuce : si le fichier de paramètres est "toto.par", en renommant (copiant) "runas.exe" comme "toto.exe", il sera inutile d'utiliser un paramètre.
Bonsoir,
Très élégante ruse, j'aime bien ..., j'adopte !
A+
HB
Glenn Gagné
Merci pour vos nombreuses résponses !
De mon côté j'ai trouvé ce petit programme également, qui de plus permet de crypter le tout de façon à sécuriser le mot de passe du compte administratif:
Après quelques tests, il est très simple d'utilisation, gratuit en licence d'utilisation "domestique" et un faible coût pour la licence commerciale.
Je vais prendre connaissance de toutes les possibilités offertes.
Glenn
"moi" a écrit dans le message de news:
Notre ami Michel Claveau tapota :
Bosnoir !
Dans le même genre : http://www.ponx.org/batutils (chercher, à gauche, runas.exe)
à noter, dans la dernière version, une astuce : si le fichier de paramètres est "toto.par", en renommant (copiant) "runas.exe" comme "toto.exe", il sera inutile d'utiliser un paramètre.
Bonsoir,
Très élégante ruse, j'aime bien ..., j'adopte !
A+
HB
Merci pour vos nombreuses résponses !
De mon côté j'ai trouvé ce petit programme également, qui de plus permet de
crypter le tout de façon à sécuriser le mot de passe du compte
administratif:
Après quelques tests, il est très simple d'utilisation, gratuit en licence
d'utilisation "domestique" et un faible coût pour la licence commerciale.
Je vais prendre connaissance de toutes les possibilités offertes.
Glenn
"moi" <moi@pas.la.ici> a écrit dans le message de
news:eNUXtcAlHHA.1340@TK2MSFTNGP04.phx.gbl...
Notre ami Michel Claveau tapota :
Bosnoir !
Dans le même genre :
http://www.ponx.org/batutils
(chercher, à gauche, runas.exe)
à noter, dans la dernière version, une astuce : si le fichier de
paramètres est "toto.par", en renommant (copiant) "runas.exe" comme
"toto.exe", il sera inutile d'utiliser un paramètre.
De mon côté j'ai trouvé ce petit programme également, qui de plus permet de crypter le tout de façon à sécuriser le mot de passe du compte administratif:
Après quelques tests, il est très simple d'utilisation, gratuit en licence d'utilisation "domestique" et un faible coût pour la licence commerciale.
Je vais prendre connaissance de toutes les possibilités offertes.
Glenn
"moi" a écrit dans le message de news:
Notre ami Michel Claveau tapota :
Bosnoir !
Dans le même genre : http://www.ponx.org/batutils (chercher, à gauche, runas.exe)
à noter, dans la dernière version, une astuce : si le fichier de paramètres est "toto.par", en renommant (copiant) "runas.exe" comme "toto.exe", il sera inutile d'utiliser un paramètre.