CreateprocesswithlogonW & envir utilisateur lanceur

Résolu
fkjjgfkgf Messages postés 2 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 7 août 2006 - 2 août 2006 à 14:07
nightlord666 Messages postés 746 Date d'inscription vendredi 17 juin 2005 Statut Membre Dernière intervention 23 mai 2007 - 7 août 2006 à 09:41
Salut

Un problème avec l'api CreateprocesswithlogonW en Visual C++ qui permet de lancer un process avec un autre user et surtout de le faire sans privilèges au départ (comme le "runas" de windows). Tout fonctionne très bien pour la cr&ation de process elle-même:

    if (!CreateProcessWithLogonW(argv[1], NULL, argv[2],
            LOGON_WITH_PROFILE, NULL, argv[3],
            CREATE_UNICODE_ENVIRONMENT, NULL, NULL,
            &si, &pi))

Mon soucis est , comme le fait très bien le "runas" , que je n'arrive pas à utiliser l'environnement du user initial ( comme l'option /ENV du runas) .

Si qq as une idée , merci d'avance !

Rappels
Il ne s'agit pas de l'option "LOGON_WITH_PROFILE" présente pour simuler l'option "/PROFILE" du runas .
Et normalement , l'API  "logonuser" n'est pas utile pour créer le process ! 

qq ?  

3 réponses

nightlord666 Messages postés 746 Date d'inscription vendredi 17 juin 2005 Statut Membre Dernière intervention 23 mai 2007 10
7 août 2006 à 09:41
Toute façcon tu utilise l'API Win32, alors la portabilité...

<hr size="2" width="100%" />Sachant qu'on peut toujours enlever une ligne à un programme, et que dans un programme il y a toujours un bug, un programme peut se résumer à une ligne avec un bug.
3
ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
4 août 2006 à 13:24
salut,

euh, la fonction CreateProcessWithLogon comporte un paramètre lpEnvironment à mettre effectivement à NULL mais je ne sais pas si CREATE_UNICODE_ENVIRONMENT est utile...sinon, on peut toujours utiliser CreateEnvironmentBlock...LogonUser pas utile, sauf si on veut l'environnement  avec CreateEnvironmentBlock...

ShareVB
0
fkjjgfkgf Messages postés 2 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 7 août 2006
7 août 2006 à 09:19
Avé

J'ai vu tout ça ! Et c'est bien ce paramêtre 'lpenvironnemnt" qui est à utiliser mais dans le cas que je recherche ( /ENV du runas) , c'est l'environnement du process lanceur que j'ai besoin d'utiliser donc on ne devrait pas avoir besoin de passer par CreateEnvironmentBlock ... il existe déjà !
J'ai trouvé une solution mais ça ne me parait pas très "propre" !

Ce paramêtre "lpenvironnment" peut être initialisé par "...,LPVOID (0x00010000),.."
qui est l'offset dans le PEB (process environnement block) du process courant concernant l'enviroonement !!!!
Ca fonctionne trsè bien, maintenant cest vrai que j'aurai aimé avoir une API pour me donner cette valeur mais bon ....!   Et la portabilité ???

Merci tout de même.

  
0
Rejoignez-nous