Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : LogonUser et CreateProcessAsUser [ Archives / J'AI BESOIN D'AIDE !!!! :O ] (mathieu57100)

mardi 17 mai 2005 à 13:36:42 | LogonUser et CreateProcessAsUser

mathieu57100

Bonjour, j'ai un ptit prob dans ma procédure qui execute un programme en tant qu'un autre utilisateur...
la voici:


procedure TForm1.Button2Click(Sender: TObject);
var
  Token : THandle;
  Si    : STARTUPINFO;
  Pi    : PROCESS_INFORMATION;
begin
  ZeroMemory(@Si, SizeOf(STARTUPINFO));
  Si.dwFlags := STARTF_USESHOWWINDOW;
  Si.wShowWindow := SW_SHOWNORMAL;
  if LogonUser('administrateur', 'ordinateur_local', 'password',LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_WINNT50, Token) then
      begin
        showmessage('Authentification réussie');
        CreateProcessAsUser(Token, 'C:\Program Files\WinRAR\WinRAR.exe', nil, nil, nil, false, 0, nil, nil, Si, Pi);
        showmessage('Résultat de l''execution...' + #13 + 'Code d''erreur: ' +IntToStr(GetLastError));
      end
  else
      showmessage('Authentification échouée' + #13 + 'Code d''erreur: ' +IntToStr(GetLastError));
end;


lors de l'execution de cette derniere, j'ai un code d'erreur 1314 qui correspond à : " Le client ne dispose pas d'un privilège nécessaire", alors que j'utilise le compte de l'administrateur local de l'ordinateur...

si quelqu'un a une idée...
merci d'avance.


jeudi 19 mai 2005 à 15:05:49 | Re : LogonUser et CreateProcessAsUser

hendrix

Réponse acceptée !
Bonjour,

J'ai déjà eu ce problème.

En fait, ce n'est pas le compte administrateur qui doit avoir les fameux 3 privilèges pour exécuter le logonuser et le createprocessasuser, mais en fait l'utilisateur qui va lancer ton programme.... j'ai cherché assez longtemps à l'époque avant de trouver ça.

Donc, regarde les privilèges des utilisateurs qui vont exécuter ton programme delphi sans t'inquiéter des privilèges du compte admin.... et ça devrait solutionner ton problème.

Meilleures salutations  !!!


hendrix

jeudi 19 mai 2005 à 15:24:12 | Re : LogonUser et CreateProcessAsUser

mathieu57100

bonjour,

tout d'abord maerci pour ta réponse, j'ai cru que je n'en n'aurait pas...
je crois pas que ce sois des fontions très utilisées...lol

mais c'est un peu flou pour moi sur ce que tu veux dire à propos des utilisateurs.
peu tu etre un peu plus explicite?

merci d'avance.

vendredi 20 mai 2005 à 12:21:53 | Re : LogonUser et CreateProcessAsUser

hendrix

Réponse acceptée !

Bonjour,

Oui, le sujet ne semble pas intéresser beaucoup de monde, ou bien il est trop compliqué que personne ne s'y intéresse... mais disons que c'est pratique en entreprise de pouvoir faire exécuter à des users, des choses auxquels ils n'ont pas droit, alors je me suis penché sur le sujet sérieusement il y a un petit moment déjà).

En fait, dans l'administration des comptes NT/XP/AD, tu as des notions de droits utilisateurs et aussi des notions de privilèges (exemple de privilège: pouvoir éteindre ou non une machine, se connecter depuis le réseau etc etc ...). Dans ton cas, tu utilises la fonction suivante: "logonuser", qui sera exécutée avec ton compte utilisateur lambda (pour justement se loguer en tant qu'admin).

Si tu vas voir:
[ Lien ]

Tu verras que la personne qui va lancer un process qui s'appuie sur logonuser doit avoir la plupart du temps les privilèges suivants:
SE_TCB_NAME  = "Act as part of the Operating System"
SE_CHANGE_NOTIFY_NAME = "Bypass traverse checking"

Il faut donc que dans l'administration de ta machine:
 - dans NT on accède aux privilèges par:
       * programmes/outils d'administration/gestionnaire des utilisateurs
       * stratégie/droits des utilisateurs (cocher "afficher les droits avancés des      
          utilisateurs"  pour les avoir tous)

- dans 2000/XP on y accède par:
      * panneau de config/outil d'admin/stratégie de sécurité locale/
      * stratégies locales/attribution des droits utilisateur

il faut que le compte lambda qui va faire le logonuser dispose des privilèges ci dessus ( je pense que pour toi c'est le premier qui manque pour le compte lambda).

Ceci dit, si la population de machines sur laquelle tu dois mettre en place ta solution, est une population de machines XP, moi je te conseille d'utiliser à ce moment là la fonction  "CreateProcessWithLogonW" (ne fonctionne pas sur NT   ). Là, tu n'as aucun logon user à faire, il suffit d'appeler la fonction et tout se fait naturellement et simplement et avec les privilèges de base des utilisateurs en plus !!!!

Voilà, j'espère que c'est plus clair pour toi (parce que j'ai pas dû pas du être trop clair dnas la façon de m'exprimer ). Donc il faut juste pour que ton code s'exécute, que tu ajoutes - pour le compte qui va exécuter ce code - le premier privilège et peut être le deuxième. Je sais que moi j'ai assez longtemps galéré avant de trouver ça. (un conseil, révise la partie administration NT/XP  et ça devrait bien se passer).

Meilleures salutations et bon courage à toi.

hendrix

lundi 30 mai 2005 à 13:38:40 | Re : LogonUser et CreateProcessAsUser

hendrix

Salut !!

Alors, as tu avancé sur le sujet ?

@+ et bon courage !

hendrix

mercredi 8 juin 2005 à 13:22:20 | Re : LogonUser et CreateProcessAsUser

hendrix

Non, plus de nouvelles... c'était bien la peine que "ducros il se décarcasse"

Faut pas baisser les bras comme ça voyons  !!!

@+

hendrix

mercredi 8 juin 2005 à 14:30:32 | Re : LogonUser et CreateProcessAsUser

mathieu57100

j'ai pas baissé les bras, mais j'ai mis ca de coté pour quelque chose de plus urgent...

mardi 21 juin 2005 à 10:54:13 | Re : LogonUser et CreateProcessAsUser

nope

Membre Club
Bonjour a tous,
Je suis entrain de deveollper un programme tres similaire a celui que mathieu developpe (sauf que je programme en C++). Bref, j'ai suivi tout les conseils de hendrix, mais ca me dis toujours que le client ne bénéficie pas des droits.

J'explique un peu mon environnement.

Je programme sous Windows NT4 (demande du client) en C++. J'ai créé un compte admintest (dans le groupe administrateurs) et un autre compte adm (aussi dans le groupe administrateur).

Voila, ca fait une semaine que je bloque dessus. Yaurai-t-il un moyen d'avoir un code qui marche?



Cette discussion est classé dans : nil, showmessage, logonuser, createprocessasuser, token


Répondre à ce message

Sujets en rapport avec ce message

LogonUser et CreateProcessAsUser. Problème d'affichage. [ par Nofrags ] Bonjour, Je reprend un service qui ne fonctionne actuellement pas correctement. Il permet de lancerune application via un programme d'administration i upload ftp par des ShellExecute?? est ce que c'est faisable? [ par othland ] salut tout le monde!après plusieurs tentative de travail avec le composant Indy, je me demande si je ne peux pas faire le upload d'un fichier texte en showmessage interactif [ par ewertheimer ] Bonjour,Est-il possible de creer des messages comme le showmessage mais interactif. C'est à dire de creer un bouton oui ou non ou les deux dans le mes bug WaitForSingleObject [ par barrique ] Bonjour,Je vous écrit car j'ai un petit problème avec l'instruction WaitForSingleObject.J'ai un programme delphi qui permet l'installation de plusieur Sémaphore [ par Caribensila ] Salut,Voilà, je voudrais faire un truc pas compliqué :Je voudrais pouvoir lancer mon application plusieurs fois. Mais pas plus qu'un nombre de fois pr pb modif base de donnee [ par jerome57440 ] bonjour,J'ai un petit problème lorsque je ve ajouter une valeurs dasn un champ specifique de ma base donnéeJ'ai un message d'erreur du type Nom de cha modif base de donnée [ par jerome57440 ] bonjour,a travers une requette je recupere les champs desirées puis ensuite j'aimerais changer la valeur de certain champsLe pb c'est que dans mon cod CreateProcess: Pb de lancement d'un processus [ par JeremyLecouvert ] Bonjour tout le monde, J'ai un pti souci avec la fonction CreateProcess, et je comprends pas où ça coince! Voilà le topo: mon appli est composée de  3 utilisation des threads avec des progressbar, tlabel et showmessage [ par mimimou ] bonjour a tous, je viens de me farcir quasiment tout les tutos concernant les thread, mais je n ai visiblement pas trouve la bonne solution, voila mon


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,359 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.