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

WinDev Discussion :

UAC + Comment détecter que je suis exécuté en tant que système ? [WD20]


Sujet :

WinDev

  1. #1
    R&B
    R&B est déconnecté
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2005
    Messages : 571
    Points : 1 263
    Points
    1 263
    Par défaut UAC + Comment détecter que je suis exécuté en tant que système ?
    Bonjour

    Nous avons un service qui lance des applications.
    Le service est déclaré en tant que compte système local. ce qui lui confère le profil système.

    Du coup les applications lancées le sont aussi.

    Comment depuis ces application détecter cet état ?

    Je ne suis pas parvenu à trouver d'informations depuis l'application indiquant mon mode d'exécution...
    J'ai bien lu WDSetup et la fonction EstAdministrateur() qui détermine si on est admin, mais rien pour système...

  2. #2
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    3 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3 954
    Points : 9 284
    Points
    9 284
    Par défaut
    hello,
    tu peux essayer de passer par la classe dotnet WindowsIdentity ( qui se trouve dans l'assemblage dotnet mscorlib )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    IdentitéDuProcessus est une  System.Security.Principal.WindowsIdentity dynamique = WindowsIdentity.GetCurrent()
    Trace(IdentitéDuProcessus.Name)
    coucou Hemgé cette fois-ci j'essaie de refourguer du dotnet
    Jurassic computer : Sinclair ZX81 - Zilog Z80A à 3,25 MHz - RAM 1 Ko - ROM 8 Ko

  3. #3
    Membre émérite
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 075
    Points : 2 441
    Points
    2 441
    Par défaut
    Citation Envoyé par jurassic pork Voir le message
    coucou Hemgé cette fois-ci j'essaie de refourguer du dotnet
    Là, je suis tout nu
    Déjà que R&B veut être exécuté et le "détecter". Le nirvana du maso ?
    Drôle de piaule, ici.

  4. #4
    R&B
    R&B est déconnecté
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2005
    Messages : 571
    Points : 1 263
    Points
    1 263
    Par défaut
    Merci jurassic pork !
    Je me doutais que .Net proposerais l'information, je l'ai même lu lors de mes recherche : ton code est donc juste
    J'osais espérer ne pas en passer pas ce chemin.

    Sinon Hemgé m'a tuer !

    Solution (obtenue par une autre voie) indirecte avec la question posée mais qui résout la problématique :
    L'application crée et lance un batch qui surveille un fichier (IF EXIST + label) et relance l'appli quand ce dernier est détecté.
    Le service se charge alors de simplement déposer un fichier. le Batch le détecte et démarre l'appli.
    on réalise la temporisation via "@CHOICE /T:2 /N /C on /D o" qui consiste à proposer un choix "on" sans l'afficher et répondre "o" au bout de 2 secondes, meilleur qu'un ping 127.0.0.1.
    Ce tour de passe passe permet à l'appli de conserver ses privilèges de départ sans influence du service (sauf peut être concernant les droit sur le fichier que l'on sait déjà gérer via "ICALS /Grant").

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 29/09/2012, 17h53
  2. Réponses: 3
    Dernier message: 16/01/2008, 12h41
  3. Réponses: 2
    Dernier message: 24/08/2006, 17h48
  4. Comment exécuter "en tant que" (RunAs) ?
    Par PierreT dans le forum API, COM et SDKs
    Réponses: 9
    Dernier message: 21/09/2005, 17h56
  5. Exécuter en tant que ...
    Par fverneau dans le forum C++Builder
    Réponses: 6
    Dernier message: 24/08/2004, 16h57

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