ouverture de session à distance

Le
vincent.verdon
Bonjour à tous,

je vais tenter d'être clair

Je développe depuis un moment déjà une appli multi-plateforme
(actuellement Win9x, NT2000/XP, Vista, Linux) appelée Tkontrole.
(http://www.pianos.com.fr/vincent.verdon/progs-perso-tcl-tk/tkontrole/tkontrole.html)

Ce logiciel, destiné aux établissements scolaires, est un pupitre de
controle des postes élèves, avec visu, prise de contrôle (par VNC),
blocage des écrans et de l'internet, etc Il est utilisé également à
des fins de maintenance.

Pour faire cela, il est architecturé en un client (Tkontrole-client)
installé sur le poste pupitre "prof" et un serveur (Tkontrole-Serveur),
installé sur chaque poste à contrôler/visualiser sous la forme d'un service.

Jusqu'à Vista, il était possible, si l'on voulait ouvrir une session sur
une machine à distance depuis le poste de controle, de démarrer VNC (de
manière transparente pour l'utilisateur) et de s'identifier.
Depuis Vista, cela n'est plus possible, car Vista interdit les services
à interagir sur l'espace utilisateur.
Ainsi, pour toute interaction graphique sur l'interface utilisateur
(prise de contrôle, visu, blocage d'écran,), j'ai été amené à casser
le code de la partie serveur en 2 : une partie service et un module qui
démarre avec la session utilisateur, le tout se parlant par un socket.

Mais il n'est donc plus possible sous Vista de démarrer à distance une
session, puisqu'il est impossible de démarrer VNC quand personne n'a
ouvert de session.

J'ai donc besoin de forcer (sans interaction graphique) l'ouverture
d'une session et je ne suis pas calé en OS Windows
Ce que je sais, c'est que smss.exe démarre winlogon.exe qui fait
afficher la fenêtre de login, c'est peu.
Ce que je sais faire, c'est paramétrer l'ouverture d'une session
automatique en bricolant un peu dans la base de registre, mais le pb,
c'est que cela ne fonctionne que si l'on provoque un redémarrage de la
machine Il suffirait de déclencher l'ouverture de session et cela
marcherait mais je ne sais pas faire
Pratiquant assiduement Unix/Linux, j'avais rêvé d'une invocation magique
genre winlogon.exe -user zorro -passwd zzzz qui aurait ouvert la
session, mais c'était juste un rêve !!!

Un détail, Tkontrole fonctionne (bien, vu le nombre d'établissements où
c'est installé) en langage Tcl/Tk (ne criez pas, je ne sais pas faire
autre chose ;-) )
Mais Tcl peut accéder via la bibliothèque Twapi à l'API windows.


Merci en tout cas d'avoir eu le courage de me lire jusque là.

Cordialement, Vincent Verdon
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
Domi
Le #17878581
vincent.verdon wrote:
Bonjour à tous,

je vais tenter d'être clair...

Je développe depuis un moment déjà une appli multi-plateforme
(actuellement Win9x, NT2000/XP, Vista, Linux) appelée Tkontrole.
(http://www.pianos.com.fr/vincent.verdon/progs-perso-tcl-tk/tkontrole/tkontrole.html)


Ce logiciel, destiné aux établissements scolaires, est un pupitre de
controle des postes élèves, avec visu, prise de contrôle (par VNC),
blocage des écrans et de l'internet, etc... Il est utilisé également à
des fins de maintenance.

Pour faire cela, il est architecturé en un client (Tkontrole-client)
installé sur le poste pupitre "prof" et un serveur (Tkontrole-Serveur),
installé sur chaque poste à contrôler/visualiser sous la forme d'un
service.

Jusqu'à Vista, il était possible, si l'on voulait ouvrir une session sur
une machine à distance depuis le poste de controle, de démarrer VNC (de
manière transparente pour l'utilisateur) et de s'identifier.
Depuis Vista, cela n'est plus possible, car Vista interdit les services
à interagir sur l'espace utilisateur.




Il y a un exemple pour contourner ce problème, mais c'est très tordu :
http://www.codeproject.com/KB/WCF/AppWatcher.aspx
vincent.verdon
Le #17884431
Bonsoir,

Domi a écrit :


Il y a un exemple pour contourner ce problème, mais c'est très tordu :
http://www.codeproject.com/KB/WCF/AppWatcher.aspx



Cela m'a l'air très très ardu effectivement : bien que comprenant pas
trop mal l'anglais, j'ai du mal là. c'est ma méconnaissance du
développement sous Windows qui est sans doute en cause.

Merci de la réponse, mais elle ne m'aide pas vraiment !

Cordialement, Vincent Verdon
antoine
Le #17884781
"vincent.verdon" news:4922f96b$0$22715$
Bonsoir,

Domi a écrit :
Il y a un exemple pour contourner ce problème, mais c'est très tordu :
http://www.codeproject.com/KB/WCF/AppWatcher.aspx



Cela m'a l'air très très ardu effectivement : bien que comprenant pas trop
mal l'anglais, j'ai du mal là. c'est ma méconnaissance du développement
sous Windows qui est sans doute en cause.

Merci de la réponse, mais elle ne m'aide pas vraiment !



Sinon des apis comme CreateProcessWithLogonW() ou
RpcImpersonateClient(), peut-être qu'elles peuvent être utiles ?
Publicité
Poster une réponse
Anonyme