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

ouverture de session à distance

3 réponses
Avatar
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

3 réponses

Avatar
Domi
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
Avatar
vincent.verdon
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
Avatar
antoine
"vincent.verdon" wrote in message
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 ?