Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

2 réponses
Avatar
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:domainexx\administrateur " & Programme, 1
Title=oshell.ExpandEnvironmentStrings("%systemroot%") & "\system32\runas.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.

2 réponses

Avatar
Gilles LAURENT [MVP]
"Richard_35" a écrit dans le
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
Avatar
Richard_35
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" a écrit dans le
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