Problème de fermeture de session suite à la création service interactif
4 réponses
Julien Malghem [MVP]
Bonjour,
J'écris un service Windows qui interagit avec le bureau. Ou plus exactement,
il lance un process possédant une GUI.
Lorsque la machine démarre, le process se lance correctement, après une
première ouverture de session, la GUI est bien affichée. Si je ferme et
réouvre ma session, la GUI est toujours présente mais ensuite impossible de
fermer ma session ou redémarrer l'ordinateur... A moins d'arrêter le service
(impossible)...
Quelqu'un saut-il comment faire pour résoudre ce problème ?
Le message retourné par l'eventlog lors de la tentative de fermeture de
session est :
Type de l'événement : Avertissement
Source de l'événement : USER32
Catégorie de l'événement : Aucun
ID de l'événement : 1073
Date : 11/08/2005
Heure : 10:26:33
Utilisateur : AUTORITE NT\SYSTEM
Ordinateur : FPDI-LAP-MALGHJ
Description :
Échec de la tentative de inconnu FPDI-LAP-MALGHJ
J'ai pensé comme solution de switcher le processus dans le desktop
Service-0x0-3e7$ au moment de la fermeture de session, mais je n'y parviens
pas...
Les fonctions SetThreadDesktop ou SetProcessWindowStation ne peuvent être
appliquées que sur le Thread ou le Process appelant. Or ce n'est pas mon cas
puisque mon processus appelant est mon programme principal et non mon
processus fils...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Lloyd Dupont
je dirais que Windows n'arrive pas a terminer ar il attend que le service s'arrete et peut-etre le service attends-t'il que le GUI process soit terminer pour finir?
c'est une sorte de Chicken & Egg problem, on dirait....
-- If you're in a war, instead of throwing a hand grenade at the enemy, throw one of those small pumpkins. Maybe it'll make everyone think how stupid war is, and while they are thinking, you can throw a real grenade at them. Jack Handey. "Julien Malghem [MVP]" wrote in message news:%
Bonjour,
J'écris un service Windows qui interagit avec le bureau. Ou plus exactement, il lance un process possédant une GUI. Lorsque la machine démarre, le process se lance correctement, après une première ouverture de session, la GUI est bien affichée. Si je ferme et réouvre ma session, la GUI est toujours présente mais ensuite impossible de fermer ma session ou redémarrer l'ordinateur... A moins d'arrêter le service (impossible)...
Quelqu'un saut-il comment faire pour résoudre ce problème ?
Le message retourné par l'eventlog lors de la tentative de fermeture de session est : Type de l'événement : Avertissement Source de l'événement : USER32 Catégorie de l'événement : Aucun ID de l'événement : 1073 Date : 11/08/2005 Heure : 10:26:33 Utilisateur : AUTORITE NTSYSTEM Ordinateur : FPDI-LAP-MALGHJ Description : Échec de la tentative de inconnu FPDI-LAP-MALGHJ
J'ai pensé comme solution de switcher le processus dans le desktop Service-0x0-3e7$ au moment de la fermeture de session, mais je n'y parviens pas... Les fonctions SetThreadDesktop ou SetProcessWindowStation ne peuvent être appliquées que sur le Thread ou le Process appelant. Or ce n'est pas mon cas puisque mon processus appelant est mon programme principal et non mon processus fils...
Toute idée sera la bienvenue,
Merci d'avance, Julien
je dirais que Windows n'arrive pas a terminer ar il attend que le service
s'arrete et peut-etre le service attends-t'il que le GUI process soit
terminer pour finir?
c'est une sorte de Chicken & Egg problem, on dirait....
--
If you're in a war, instead of throwing a hand grenade at the enemy, throw
one of those small pumpkins. Maybe it'll make everyone think how stupid war
is, and while they are thinking, you can throw a real grenade at them.
Jack Handey.
"Julien Malghem [MVP]" <admin-nospam-@renar.net> wrote in message
news:%23xmKkWynFHA.1204@TK2MSFTNGP12.phx.gbl...
Bonjour,
J'écris un service Windows qui interagit avec le bureau. Ou plus
exactement, il lance un process possédant une GUI.
Lorsque la machine démarre, le process se lance correctement, après une
première ouverture de session, la GUI est bien affichée. Si je ferme et
réouvre ma session, la GUI est toujours présente mais ensuite impossible
de fermer ma session ou redémarrer l'ordinateur... A moins d'arrêter le
service (impossible)...
Quelqu'un saut-il comment faire pour résoudre ce problème ?
Le message retourné par l'eventlog lors de la tentative de fermeture de
session est :
Type de l'événement : Avertissement
Source de l'événement : USER32
Catégorie de l'événement : Aucun
ID de l'événement : 1073
Date : 11/08/2005
Heure : 10:26:33
Utilisateur : AUTORITE NTSYSTEM
Ordinateur : FPDI-LAP-MALGHJ
Description :
Échec de la tentative de inconnu FPDI-LAP-MALGHJ
J'ai pensé comme solution de switcher le processus dans le desktop
Service-0x0-3e7$ au moment de la fermeture de session, mais je n'y
parviens pas...
Les fonctions SetThreadDesktop ou SetProcessWindowStation ne peuvent être
appliquées que sur le Thread ou le Process appelant. Or ce n'est pas mon
cas puisque mon processus appelant est mon programme principal et non mon
processus fils...
je dirais que Windows n'arrive pas a terminer ar il attend que le service s'arrete et peut-etre le service attends-t'il que le GUI process soit terminer pour finir?
c'est une sorte de Chicken & Egg problem, on dirait....
-- If you're in a war, instead of throwing a hand grenade at the enemy, throw one of those small pumpkins. Maybe it'll make everyone think how stupid war is, and while they are thinking, you can throw a real grenade at them. Jack Handey. "Julien Malghem [MVP]" wrote in message news:%
Bonjour,
J'écris un service Windows qui interagit avec le bureau. Ou plus exactement, il lance un process possédant une GUI. Lorsque la machine démarre, le process se lance correctement, après une première ouverture de session, la GUI est bien affichée. Si je ferme et réouvre ma session, la GUI est toujours présente mais ensuite impossible de fermer ma session ou redémarrer l'ordinateur... A moins d'arrêter le service (impossible)...
Quelqu'un saut-il comment faire pour résoudre ce problème ?
Le message retourné par l'eventlog lors de la tentative de fermeture de session est : Type de l'événement : Avertissement Source de l'événement : USER32 Catégorie de l'événement : Aucun ID de l'événement : 1073 Date : 11/08/2005 Heure : 10:26:33 Utilisateur : AUTORITE NTSYSTEM Ordinateur : FPDI-LAP-MALGHJ Description : Échec de la tentative de inconnu FPDI-LAP-MALGHJ
J'ai pensé comme solution de switcher le processus dans le desktop Service-0x0-3e7$ au moment de la fermeture de session, mais je n'y parviens pas... Les fonctions SetThreadDesktop ou SetProcessWindowStation ne peuvent être appliquées que sur le Thread ou le Process appelant. Or ce n'est pas mon cas puisque mon processus appelant est mon programme principal et non mon processus fils...
Toute idée sera la bienvenue,
Merci d'avance, Julien
Lloyd Dupont
En passant il fortement deconseiller d'ecrire un service avec une GUI. La bonne pratique c'est d'ecrire un service qui sait parler au monde exterieur (avec Remoting?) pui de faire une GUI qui lui parle. Si tu veux qu'elle se lance au login, met la dans HKEY_SOMEKEY_I_CANT_REMEMBERSoftwareWindowsCurrentVersionRun
-- If you're in a war, instead of throwing a hand grenade at the enemy, throw one of those small pumpkins. Maybe it'll make everyone think how stupid war is, and while they are thinking, you can throw a real grenade at them. Jack Handey. "Julien Malghem [MVP]" wrote in message news:%
Bonjour,
J'écris un service Windows qui interagit avec le bureau. Ou plus exactement, il lance un process possédant une GUI. Lorsque la machine démarre, le process se lance correctement, après une première ouverture de session, la GUI est bien affichée. Si je ferme et réouvre ma session, la GUI est toujours présente mais ensuite impossible de fermer ma session ou redémarrer l'ordinateur... A moins d'arrêter le service (impossible)...
Quelqu'un saut-il comment faire pour résoudre ce problème ?
Le message retourné par l'eventlog lors de la tentative de fermeture de session est : Type de l'événement : Avertissement Source de l'événement : USER32 Catégorie de l'événement : Aucun ID de l'événement : 1073 Date : 11/08/2005 Heure : 10:26:33 Utilisateur : AUTORITE NTSYSTEM Ordinateur : FPDI-LAP-MALGHJ Description : Échec de la tentative de inconnu FPDI-LAP-MALGHJ
J'ai pensé comme solution de switcher le processus dans le desktop Service-0x0-3e7$ au moment de la fermeture de session, mais je n'y parviens pas... Les fonctions SetThreadDesktop ou SetProcessWindowStation ne peuvent être appliquées que sur le Thread ou le Process appelant. Or ce n'est pas mon cas puisque mon processus appelant est mon programme principal et non mon processus fils...
Toute idée sera la bienvenue,
Merci d'avance, Julien
En passant il fortement deconseiller d'ecrire un service avec une GUI.
La bonne pratique c'est d'ecrire un service qui sait parler au monde
exterieur (avec Remoting?) pui de faire une GUI qui lui parle.
Si tu veux qu'elle se lance au login, met la dans
HKEY_SOMEKEY_I_CANT_REMEMBERSoftwareWindowsCurrentVersionRun
--
If you're in a war, instead of throwing a hand grenade at the enemy, throw
one of those small pumpkins. Maybe it'll make everyone think how stupid war
is, and while they are thinking, you can throw a real grenade at them.
Jack Handey.
"Julien Malghem [MVP]" <admin-nospam-@renar.net> wrote in message
news:%23xmKkWynFHA.1204@TK2MSFTNGP12.phx.gbl...
Bonjour,
J'écris un service Windows qui interagit avec le bureau. Ou plus
exactement, il lance un process possédant une GUI.
Lorsque la machine démarre, le process se lance correctement, après une
première ouverture de session, la GUI est bien affichée. Si je ferme et
réouvre ma session, la GUI est toujours présente mais ensuite impossible
de fermer ma session ou redémarrer l'ordinateur... A moins d'arrêter le
service (impossible)...
Quelqu'un saut-il comment faire pour résoudre ce problème ?
Le message retourné par l'eventlog lors de la tentative de fermeture de
session est :
Type de l'événement : Avertissement
Source de l'événement : USER32
Catégorie de l'événement : Aucun
ID de l'événement : 1073
Date : 11/08/2005
Heure : 10:26:33
Utilisateur : AUTORITE NTSYSTEM
Ordinateur : FPDI-LAP-MALGHJ
Description :
Échec de la tentative de inconnu FPDI-LAP-MALGHJ
J'ai pensé comme solution de switcher le processus dans le desktop
Service-0x0-3e7$ au moment de la fermeture de session, mais je n'y
parviens pas...
Les fonctions SetThreadDesktop ou SetProcessWindowStation ne peuvent être
appliquées que sur le Thread ou le Process appelant. Or ce n'est pas mon
cas puisque mon processus appelant est mon programme principal et non mon
processus fils...
En passant il fortement deconseiller d'ecrire un service avec une GUI. La bonne pratique c'est d'ecrire un service qui sait parler au monde exterieur (avec Remoting?) pui de faire une GUI qui lui parle. Si tu veux qu'elle se lance au login, met la dans HKEY_SOMEKEY_I_CANT_REMEMBERSoftwareWindowsCurrentVersionRun
-- If you're in a war, instead of throwing a hand grenade at the enemy, throw one of those small pumpkins. Maybe it'll make everyone think how stupid war is, and while they are thinking, you can throw a real grenade at them. Jack Handey. "Julien Malghem [MVP]" wrote in message news:%
Bonjour,
J'écris un service Windows qui interagit avec le bureau. Ou plus exactement, il lance un process possédant une GUI. Lorsque la machine démarre, le process se lance correctement, après une première ouverture de session, la GUI est bien affichée. Si je ferme et réouvre ma session, la GUI est toujours présente mais ensuite impossible de fermer ma session ou redémarrer l'ordinateur... A moins d'arrêter le service (impossible)...
Quelqu'un saut-il comment faire pour résoudre ce problème ?
Le message retourné par l'eventlog lors de la tentative de fermeture de session est : Type de l'événement : Avertissement Source de l'événement : USER32 Catégorie de l'événement : Aucun ID de l'événement : 1073 Date : 11/08/2005 Heure : 10:26:33 Utilisateur : AUTORITE NTSYSTEM Ordinateur : FPDI-LAP-MALGHJ Description : Échec de la tentative de inconnu FPDI-LAP-MALGHJ
J'ai pensé comme solution de switcher le processus dans le desktop Service-0x0-3e7$ au moment de la fermeture de session, mais je n'y parviens pas... Les fonctions SetThreadDesktop ou SetProcessWindowStation ne peuvent être appliquées que sur le Thread ou le Process appelant. Or ce n'est pas mon cas puisque mon processus appelant est mon programme principal et non mon processus fils...
Toute idée sera la bienvenue,
Merci d'avance, Julien
Mehdi
On Fri, 12 Aug 2005 12:07:08 +0200, Julien Malghem [MVP] wrote:
J'écris un service Windows qui interagit avec le bureau. Ou plus exactement, il lance un process possédant une GUI. Lorsque la machine démarre, le process se lance correctement, après une première ouverture de session, la GUI est bien affichée. Si je ferme et réouvre ma session, la GUI est toujours présente mais ensuite impossible de fermer ma session ou redémarrer l'ordinateur... A moins d'arrêter le service (impossible)...
Quelqu'un saut-il comment faire pour résoudre ce problème ?
Ne surtout pas faire ce genre de choses. Un service Windows ne doit pas avoir d'interface utilisateur. En partie a cause des problemes que tu mentionne ici, et en partie car cela ouvre un énorme trou de sécurité dans ton systeme. L'appli que tu lance depuis ton service est lancée dans le compte utilisateur de ton service qui est souvent Local System. Ce qui peut potentiellement permettre a n'importe qui ayant access a cette machine d'avoir un access administrateur sur ta machine.
Comme l'a dit Lloyd, cree une appli Windows normale qui se lance automatiquement lorsqu'un utilisateur se log et communique entre ton appli et ton service via .NET Remoting, une socket, shared memory, ce que tu veux...
On Fri, 12 Aug 2005 12:07:08 +0200, Julien Malghem [MVP] wrote:
J'écris un service Windows qui interagit avec le bureau. Ou plus exactement,
il lance un process possédant une GUI.
Lorsque la machine démarre, le process se lance correctement, après une
première ouverture de session, la GUI est bien affichée. Si je ferme et
réouvre ma session, la GUI est toujours présente mais ensuite impossible de
fermer ma session ou redémarrer l'ordinateur... A moins d'arrêter le service
(impossible)...
Quelqu'un saut-il comment faire pour résoudre ce problème ?
Ne surtout pas faire ce genre de choses. Un service Windows ne doit pas
avoir d'interface utilisateur. En partie a cause des problemes que tu
mentionne ici, et en partie car cela ouvre un énorme trou de sécurité dans
ton systeme. L'appli que tu lance depuis ton service est lancée dans le
compte utilisateur de ton service qui est souvent Local System. Ce qui peut
potentiellement permettre a n'importe qui ayant access a cette machine
d'avoir un access administrateur sur ta machine.
Comme l'a dit Lloyd, cree une appli Windows normale qui se lance
automatiquement lorsqu'un utilisateur se log et communique entre ton appli
et ton service via .NET Remoting, une socket, shared memory, ce que tu
veux...
On Fri, 12 Aug 2005 12:07:08 +0200, Julien Malghem [MVP] wrote:
J'écris un service Windows qui interagit avec le bureau. Ou plus exactement, il lance un process possédant une GUI. Lorsque la machine démarre, le process se lance correctement, après une première ouverture de session, la GUI est bien affichée. Si je ferme et réouvre ma session, la GUI est toujours présente mais ensuite impossible de fermer ma session ou redémarrer l'ordinateur... A moins d'arrêter le service (impossible)...
Quelqu'un saut-il comment faire pour résoudre ce problème ?
Ne surtout pas faire ce genre de choses. Un service Windows ne doit pas avoir d'interface utilisateur. En partie a cause des problemes que tu mentionne ici, et en partie car cela ouvre un énorme trou de sécurité dans ton systeme. L'appli que tu lance depuis ton service est lancée dans le compte utilisateur de ton service qui est souvent Local System. Ce qui peut potentiellement permettre a n'importe qui ayant access a cette machine d'avoir un access administrateur sur ta machine.
Comme l'a dit Lloyd, cree une appli Windows normale qui se lance automatiquement lorsqu'un utilisateur se log et communique entre ton appli et ton service via .NET Remoting, une socket, shared memory, ce que tu veux...
Julien Malghem [MVP]
Bonjour et merci pour vos réponses.
"Mehdi" a écrit dans le message de news: 16ztjw8adh167.1fxzgzrqsg052$
Ne surtout pas faire ce genre de choses. Un service Windows ne doit pas avoir d'interface utilisateur. En partie a cause des problemes que tu mentionne ici, et en partie car cela ouvre un énorme trou de sécurité dans ton systeme. L'appli que tu lance depuis ton service est lancée dans le compte utilisateur de ton service qui est souvent Local System. Ce qui peut potentiellement permettre a n'importe qui ayant access a cette machine d'avoir un access administrateur sur ta machine.
Impossible, je n'ai pas la main sur l'application. Disons que je réécrit une sorte de srvany.exe avec un peu plus d'option pour pouvoir lancer l'application. Mais je ne peux pas modifier l'exe existant malheureusement....
A+ Julien
Bonjour et merci pour vos réponses.
"Mehdi" <vioccc@REMOVEME.gmail.com> a écrit dans le message de news:
16ztjw8adh167.1fxzgzrqsg052$.dlg@40tude.net...
Ne surtout pas faire ce genre de choses. Un service Windows ne doit pas
avoir d'interface utilisateur. En partie a cause des problemes que tu
mentionne ici, et en partie car cela ouvre un énorme trou de sécurité dans
ton systeme. L'appli que tu lance depuis ton service est lancée dans le
compte utilisateur de ton service qui est souvent Local System. Ce qui
peut
potentiellement permettre a n'importe qui ayant access a cette machine
d'avoir un access administrateur sur ta machine.
Impossible, je n'ai pas la main sur l'application. Disons que je réécrit une
sorte de srvany.exe avec un peu plus d'option pour pouvoir lancer
l'application.
Mais je ne peux pas modifier l'exe existant malheureusement....
"Mehdi" a écrit dans le message de news: 16ztjw8adh167.1fxzgzrqsg052$
Ne surtout pas faire ce genre de choses. Un service Windows ne doit pas avoir d'interface utilisateur. En partie a cause des problemes que tu mentionne ici, et en partie car cela ouvre un énorme trou de sécurité dans ton systeme. L'appli que tu lance depuis ton service est lancée dans le compte utilisateur de ton service qui est souvent Local System. Ce qui peut potentiellement permettre a n'importe qui ayant access a cette machine d'avoir un access administrateur sur ta machine.
Impossible, je n'ai pas la main sur l'application. Disons que je réécrit une sorte de srvany.exe avec un peu plus d'option pour pouvoir lancer l'application. Mais je ne peux pas modifier l'exe existant malheureusement....