IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

Difference entre services


Sujet :

Windows

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 232
    Points : 93
    Points
    93
    Par défaut Difference entre services
    Bonjour,

    Je doit créer un service sous windows pour un programme, seulement je n'arrive pas à comprendre la différence entre un service windows et un service par programme qui sont cité dans ce lien :

    http://msdn.microsoft.com/fr-fr/libr...(v=VS.80).aspx

    Si vous pourriez m'éclairer ?!!

    Merci, beaucoup.

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    En fait, la première option te propose de créer un service en utilisant un canevas "service windows" .

    L'option service par programme ne crée pas le canevas du service, c'est à toi de le créer (en héritant des bonnes classes et en créant les fonctions obligatoires pour un service).

    Je te conseille d'utiliser le canevas Service, c'est moins casse-gueule pour commencer.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  3. #3
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 193
    Points : 28 077
    Points
    28 077
    Par défaut
    Je confirme
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 232
    Points : 93
    Points
    93
    Par défaut
    Ok merci beaucoup hihi,

    et juste une dernière petite question, j'imagine que le langage utilisé pour créer un service et donc le VB ??

  5. #5
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Citation Envoyé par Nanais19 Voir le message
    et juste une dernière petite question, j'imagine que le langage utilisé pour créer un service et donc le VB ??
    Je ne suis pas adepte du VB mais vu l'exemple proposé sur la page, je suppose que oui, c'est possible (de même que dans d'autres langages).

    Attention, lorsque l'on créé un service (quelque soit le langage utilisé), il ne faut pas perdre de vue que le service s'exécute souvent avec une identité particulière (LocalSystem).

    Cette identité à des privilèges et peut donc faire beaucoup de choses au niveau du système mais c'est une identité anonyme, c'est à dire qu'il y a aussi des choses qu'elle ne peut pas faire (interagir avec le bureau, monter un disque réseau, accéder à la branche HKCU de la registry, ...).
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  6. #6
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 193
    Points : 28 077
    Points
    28 077
    Par défaut
    un service est un programme (presque) comme un autre. Il peut donc être créé avec n'importe quel langage capable de faire un exécutable.

    Quelques restrictions, tout de même :
    Comme le dit ram-0000, un service s’exécute dans un conteste bien particulier, il ne s’exécute pas dans la session de l'utilisateur mais dans une session indépendante.
    Un service ne doit jamais interagir avec l'utilisateur ou un quelconque programme lancé par l'utilisateur.
    Un service doit être totalement autonome, il démarre ou il s'arrête tout seul sur ordre du système, il doit être capable, seul, d'aller chercher les infos qu'il a besoin.
    Toutes les erreurs et exceptions doivent être totalement gérées au sein du service sans affichage de messages....
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 232
    Points : 93
    Points
    93
    Par défaut
    Citation Envoyé par sevyc64 Voir le message
    Un service ne doit jamais interagir avec l'utilisateur ou un quelconque programme lancé par l'utilisateur.
    J'ai vu qu'un service pouvait être executer manuellement à partir de code. Est il possible de l'executer quand même à partir d'un programme lancé par l'utilisateur, afin que le service fasse des contrôles régulier et systématique pour cette application. De plus, un message devra être transmis à travers une fonctionnalité de cette application.

    Est ce possible ? Ou sinon, j'ai vu que l'on peut acceder aux journaux des événements, est ce possible de créer un événement déclenché par le service que l'application devra reconnaitre ? (cela me parrait bien compliqué) !

    Merci pour vos renseignements.

  8. #8
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 193
    Points : 28 077
    Points
    28 077
    Par défaut
    Un service ne peut pas interagir avec un programme lancé par un utilisateur, par contre une programme lancé par l'utilisateur pour interagir avec un service. Cependant, les interactions se limitent à démarrer/arrêter/suspendre/reprendre un service et le déclenchement de commandes préprogrammées dans le service (ce que perso, je n'ai jamais réussi à faire).
    Il faut utiliser un serviceManager (ou des api suivants les langages) pour cela

    Il est aussi possible d'établir un dialogue entre un service et un programme en mettant en place une classique architecture client/serveur soit par named pipes soit par tcp/ip (sockets)


    Un service peut inscrire un log dans un journal que ce soit un journal d’événements de Windows, ou un fichier sur le disque, ce fichier pouvant être lu, de façon asynchrone et surtout non bloquante, par un autre programme.

    Regarde dans le tutoriaux de VB.Net/C# tu en trouvera un ou 2 sur les services. Cela te donnera déjà une idée.
    Il y en a probablement aussi dans les rubriques des autres langages.
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  9. #9
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Citation Envoyé par Nanais19 Voir le message
    J'ai vu qu'un service pouvait être executer manuellement à partir de code. Est il possible de l'executer quand même à partir d'un programme lancé par l'utilisateur, afin que le service fasse des contrôles régulier et systématique pour cette application.
    Un service est un programme particulier qui est lancé par le Service Control Manager et qui possède un interface particulier (des fonctions) qui seront appelée par le SCM.

    Le binaire d'un service ne peut être lancé par un programme utilisateur pour au moins 2 raisons :
    • Les droits et privilèges nécessaires au service ne seront pas donné par l'environnement de cet utilisateur (peut être que ton service n'a pas besoin de privilèges particuliers mais peut être pas).
    • Le Service est lancé d'une certaine manière par le SCM et le programme utilisateur ne pourra pas implémenter cette méthode de lancement très spécifique.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 232
    Points : 93
    Points
    93
    Par défaut
    Bon bé, je vais faire des recherches pour en savoir un peu plus.

    Merci pour votre aide.

  11. #11
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Depuis Vista, les services ne peuvent plus être interactifs. Sous XP, ils le pouvaient, et c'était une faille de sécurité monstre!

    Par exemple, FreeSSHd est un service interactif. Depuis les options, on peut ouvrir une fenêtre "Ouvrir", ce qui permet de faire n'importe quoi (ouvrir l'Explorateur, lancer l'invite de commandes) en tant que SYSTEM!
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. difference entre service web et servlet
    Par momedalhouma dans le forum Services Web
    Réponses: 9
    Dernier message: 06/03/2013, 12h22
  2. Réponses: 0
    Dernier message: 08/07/2008, 11h28
  3. [BO XIR]y'a t'il une difference entre Service Pack et Fix Pack ?
    Par pdasilva dans le forum Administration-Migration
    Réponses: 4
    Dernier message: 12/03/2008, 18h10
  4. Difference entre corba et services web
    Par Klemsy78 dans le forum CORBA
    Réponses: 1
    Dernier message: 15/10/2007, 14h12
  5. Communication entre services avec compte differents
    Par Bones71 dans le forum Firebird
    Réponses: 2
    Dernier message: 27/09/2007, 16h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo