Problème de fenêtre active en VB Script (suite et fin ?...).

Le
Richard_35
Bonjour à tous,

Serveur :
Windows Server 2003 pour Small Business Server (SBS)
Anti-virus Trend Micro
Clients :
Windows XP Pro 2002 SP3

Je me permets de créer un nouveau fil dans le forum adéquat car je sèche
lamentablement sur le script ci-dessous

début script
Option explicit
dim oShell, Programme, Title

set oShell= Wscript.CreateObject("WScript.Shell")
Programme = wscript.arguments(0)

oShell.Run "runas /user:domainexxadministrateur " & Programme, 1
Title=oshell.ExpandEnvironmentStrings("%systemroot%") & "system32unas.exe"
oShell.AppActivate Title
WScript.Sleep 100
oShell.Sendkeys "MotDePasse~"
Wscript.Quit
fin script

Sur certains PC de ma boîte, la "fenêtre DOS" qui demande le mot de passe
administrateur reste affichée. Je pense qu'il s'agit de repérage de
la fenêtre active (sur certain PC, uniquement).

Existe-t-il une méthode pour que ce script fonctionne à tous les coups,
quelque soit le type de PC client, les programmes de logon lancés en
parallèle (anti-virus ou autre), les services lancés, etc ?

Merci d'avance de vos conseils,
Richard.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Gilles LAURENT [MVP]
Le #17906021
"Richard_35" message de
news:
| Bonjour à tous,

Bonjour,

[...]
| Sur certains PC de ma boîte, la "fenêtre DOS" qui demande le mot de
| passe administrateur reste affichée. Je pense qu'il s'agit de
| repérage de
| la fenêtre active (sur certain PC, uniquement).
|
| Existe-t-il une méthode pour que ce script fonctionne à tous les
| coups, quelque soit le type de PC client, les programmes de logon
| lancés en parallèle (anti-virus ou autre), les services lancés,
| etc... ?

La technique de l'injection de séquence clavier est toujours risquée car
la fenêtre active peut perdre le focus à tout moment. Vous pouvez
toutefois essayer le code suivant :
...
While oShell.AppActivate(Title) <> True
WScript.Sleep(100)
Wend
...

ou alors utiliser un outil tiers qui sera plus fiable et protégera
également le mot de passe :
http://www.joeware.net/freetools/tools/cpau/index.htm

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
Richard_35
Le #17943521
Bonjour Gilles,

Ta boucle "While" fonctionne du tonnerre !...
Plus aucun problème, quelque soit le type de PC.

Je communique la solution à mes différents fils sur ce sujet : cela peut
intéresser du monde.

Merci encore,
Richard.

"Gilles LAURENT [MVP]" a écrit :

"Richard_35" message de
news:
| Bonjour à tous,

Bonjour,

[...]
| Sur certains PC de ma boîte, la "fenêtre DOS" qui demande le mot de
| passe administrateur reste affichée. Je pense qu'il s'agit de
| repérage de
| la fenêtre active (sur certain PC, uniquement).
|
| Existe-t-il une méthode pour que ce script fonctionne à tous les
| coups, quelque soit le type de PC client, les programmes de logon
| lancés en parallèle (anti-virus ou autre), les services lancés,
| etc... ?

La technique de l'injection de séquence clavier est toujours risquée car
la fenêtre active peut perdre le focus à tout moment. Vous pouvez
toutefois essayer le code suivant :
....
While oShell.AppActivate(Title) <> True
WScript.Sleep(100)
Wend
....

ou alors utiliser un outil tiers qui sera plus fiable et protégera
également le mot de passe :
http://www.joeware.net/freetools/tools/cpau/index.htm

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr





Publicité
Poster une réponse
Anonyme