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 :

Comment lancer un programme à partir du compte système SYSTEM ?


Sujet :

Windows

  1. #1
    Membre du Club Avatar de masterx_goldman
    Inscrit en
    Mai 2008
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 164
    Points : 51
    Points
    51
    Par défaut Comment lancer un programme à partir du compte système SYSTEM ?
    Bonjour tout le monde,

    Je veux tester des appels de fonctions à partir du compte système SYSTEM car normalement y'a plein de fonctions, qui étant appelées à partir d'un programme qui tourne sous le compte SYSTEM , retournent des valeurs différentes de celles retournées quand elles sont appelées par ce même programme qui tourne en un compte autre que SYSTEM .

    Donc ma question est: y'a-t-il un moyen de lancer un exécutable en compte SYSTEM ?

    merci pour vos réponses

  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
    Citation Envoyé par masterx_goldman Voir le message
    Je veux tester des appels de fonctions à partir du compte système SYSTEM car normalement y'a plein de fonctions, qui étant appelées à partir d'un programme qui tourne sous le compte SYSTEM , retournent des valeurs différentes de celles retournées quand elles sont appelées par ce même programme qui tourne en un compte autre que SYSTEM .
    Des exemples (pour mon information)

    Citation Envoyé par masterx_goldman Voir le message
    y'a-t-il un moyen de lancer un exécutable en compte SYSTEM ?
    Je ferais un service Windows qui lui s'exécute en tant que SYSTEM

  3. #3
    Membre du Club Avatar de masterx_goldman
    Inscrit en
    Mai 2008
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 164
    Points : 51
    Points
    51
    Par défaut
    Citation Envoyé par ram-0000 Voir le message
    Des exemples (pour mon information)
    Je sais pas exactement, mais j'essai de comprendre la différence entre le compte SYSTEM et les autres comptes.
    J'ai un programme qui retourne le contenu de la variable d'environnement 'UserName'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    #include <iostream>
    #include <fstream>
    #include <windows.h>
    
    using namespace std;
    
    int main()
    {
    char profilename[250];
    ExpandEnvironmentStrings("%UserName%",profilename,250);
    ofstream fichier("C:\\testSYSTEMCall.txt", ios::out | ios::trunc);  // ouverture en écriture avec effacement du fichier ouvert
     
            if(fichier)
            {
                   
                    fichier << "ProfileName : " <<profilename<< endl;
                    
     
                    fichier.close();
            }
            else
                    cerr << "Impossible d'ouvrir le fichier !" << endl;
     
    
    
    return 0;
    }
    quand je lance mon programme à la main sous ma session "Administrateur", le contenu du fichier "C:\\testSYSTEMCall.txt" est le suivant :
    ProfileName : Administrateur
    par contre, quand ke lance ce même programme à partir d'un service windows,(je peux voir qu'il est lancé en compte système tout comme le service qu'il l'a lancé) , il m'écrit :
    ProfileName : %UserName%
    Alors je sais pas comment interpréter ça, est ce que le compte système ne peut pas voir la variable d'environnement de la session "Administrateur" ou c'est autre chose ... ?

  4. #4
    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
    un service exécuté en tant que SYSTEM n'est pas connecté (au sens login/password) donc la variable d'environnement USERNAME n'a pas de sens dans ce contexte

    autre exemple, la registry HKCU (HKEY_CURRENT_USER) n'existe pas pour un service exécuté en tant que SYSTEM toujours parce qu'il n'est pas connecté

  5. #5
    Membre du Club Avatar de masterx_goldman
    Inscrit en
    Mai 2008
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 164
    Points : 51
    Points
    51
    Par défaut
    Citation Envoyé par ram-0000 Voir le message
    un service exécuté en tant que SYSTEM n'est pas connecté (au sens login/password) donc la variable d'environnement USERNAME n'a pas de sens dans ce contexte

    autre exemple, la registry HKCU (HKEY_CURRENT_USER) n'existe pas pour un service exécuté en tant que SYSTEM toujours parce qu'il n'est pas connecté
    Merci pour l'explication ram-0000

    Je serais reconnaissant si tu me donne de bons liens pour bien comprendre ces notions de services windows, mode connecté, variable d'environnement....

    Rq: ce poste là vise la même chose que mon post http://www.developpez.net/forums/d80...mpte-ad-local/ mais j'essai d'aborder les choses de différents manières pour trouver une solution. Ce dernier n'a pas trouvé de réponses :/

    merci de mettre une réponse si tu en as une

  6. #6
    Membre émérite Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Points : 2 280
    Points
    2 280
    Par défaut
    Citation Envoyé par masterx_goldman Voir le message
    Donc ma question est: y'a-t-il un moyen de lancer un exécutable en compte SYSTEM ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    psexec.exe -s -i programme.exe
    psexec.exe est un programme que tu trouveras dans la suite de Sysinternals.
    Cordialement.

  7. #7
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    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 381
    Points : 41 582
    Points
    41 582
    Par défaut
    Sur le coup, j'ai eu peur.

    Mais après une difficile recherche, j'ai trouvé un article gratuit sur PsExec, qui confirme qu'il nécessite les droits d'administration sur la machine visée.

  8. #8
    Membre du Club Avatar de masterx_goldman
    Inscrit en
    Mai 2008
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 164
    Points : 51
    Points
    51
    Par défaut
    J'ai essayé la commande qu'a donné Nicolas en haut mais ça n'a pas marché :/
    Le message d'erreur est le suivant:
    ------------------------------------------------------------
    C:\PsTools>psexec.exe -s -i test_functionsSYSTEM.exe

    PsExec v1.96 - Execute processes remotely
    Copyright (C) 2001-2009 Mark Russinovich
    Sysinternals - www.sysinternals.com


    PsExec could not start test_functionsSYSTEM.exe on PC-masterx_goldman:
    Le fichier spÚcifiÚ est introuvable.
    ------------------------------------------------------------

    je sais pas c'est quoi le problème malgrès que j'ai mis mon programme "test_functionsSYSTEM.exe" dans le même dossier que "psexec.exe" !

  9. #9
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    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 381
    Points : 41 582
    Points
    41 582
    Par défaut
    Essaie en mettant le chemin complet: Le compte system est ouvert dans son répertoire par défaut, qui n'est pas C:\PsTools.

  10. #10
    Membre du Club Avatar de masterx_goldman
    Inscrit en
    Mai 2008
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 164
    Points : 51
    Points
    51
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Essaie en mettant le chemin complet: Le compte system est ouvert dans son répertoire par défaut, qui n'est pas C:\PsTools.
    Merci ça a fonctionné parfaitement quand j'ai mis le chemin absolu de l'exécutable

    --------------------------------------------
    C:\PsTools>psexec.exe -s -i c:\PsTools\test_functionsSYSTEM.exe

    PsExec v1.96 - Execute processes remotely
    Copyright (C) 2001-2009 Mark Russinovich
    Sysinternals - www.sysinternals.com


    c:\PsTools\test_functionsSYSTEM.exe exited on PC-masterx_goldman with error code 0.

    --------------------------------------------

    Merci à vous tous

  11. #11
    Membre émérite Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Points : 2 280
    Points
    2 280
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Sur le coup, j'ai eu peur.

    Mais après une difficile recherche, j'ai trouvé un article gratuit sur PsExec, qui confirme qu'il nécessite les droits d'administration sur la machine visée.
    Ah oui, mea culpa, j'aurais pu préciser.
    Cordialement.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 14/03/2012, 11h10
  2. Comment lancer VLC a partir un programme java ?
    Par khaledzz9 dans le forum Général Java
    Réponses: 2
    Dernier message: 18/01/2009, 16h26
  3. Comment lancer un programme à partir d'un bouton ?
    Par pitizone dans le forum Interfaces Graphiques
    Réponses: 8
    Dernier message: 13/03/2007, 20h48
  4. Réponses: 11
    Dernier message: 25/05/2006, 11h42
  5. Réponses: 8
    Dernier message: 05/06/2002, 11h55

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