[R] Créer un processus sur le compte utilisateur connecté

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Manox
Niveau 3
Niveau 3
Messages : 43
Enregistré le : mar. 18 déc. 2012 10:56
Status : Hors ligne

[R] Créer un processus sur le compte utilisateur connecté

#1

Message par Manox »

Salut,

Le titre n'est pas vraiment parlant, mais voici globalement la requête qui me pose problème :

Je travaille actuellement sur un outil qui récupère des informations de postes à distance, l'outil marche globalement bien j'ai cependant un soucis : la récupération des shares réseaux connectés (avec sa lettre associée).

Voilà comment ça se passe :

Un user se connecte sur un poste -> un loginscript est lancé -> les shares sont mappés et sont non persistant.

Problème :

Au début je les récupérais via WMI, ça marchait du moment que le user était admin de la machine, lorsque le user n'est plus admin les info wmi ("Networkconnection") sont vide... J'ai essayé de passer via la registry mais le HKCU\Network ne livre aucune info étant donné que les shares sont mappé au login et ne sont pas persistant...

Potentiel solution :

En m'inspirant du concept du PSExec (qui pour rappel permet de lancer des exec sur des postes distants) avec cette technique je lance un exec sur le poste à distance puis effectue un net use > \\MonShare\Récupérationdesinfos\netuse.txt

ça marche bien mais là encore problème, l'exe est lancé sous le compte Système, or les shares ne sont pas mappé sur cette utilisateur.

Bref, dans mon exec j'essaie de récupéré le token du process explorer.exe pour lancer mon exec sous les mêmes droit histoire de pouvoir récupérer la réponse de ma requête net use...

voila mon essaie avec autoit :
► Afficher le texte
voilà un code en C# qui apparemment est fonctionnel :
► Afficher le texte
lien du code en C# http://social.msdn.microsoft.com/Forums ... arpgeneral

Bref, j'ai fais autant de recherche que j'ai pu, mais je dois avouer que mes connaissances se sont vite retrouvées limitées.

Si vous vous demandez si c'est possible, ça l'est, si vous chercher un utilitaire du nom de owexec (même principe que psexec) il le fait, mais pas moyen de savoir comment...

Merci d'avance pour votre aide !
Modifié en dernier par Manox le jeu. 31 oct. 2013 09:06, modifié 2 fois.
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Créer un processus sur le compte utilisateur connec

#2

Message par jguinch »

Pense à utiliser les balises Spoiler pour le long code...

Le code AutoIt que tu as posté a l'air fonctionnel (du moins, il exécute une fenêtre cmd dans le contexte du user connecté), qu'est-ce qui ne fonctionne pas ?
Sinon, tu n'as pas moyen de lancer ton programme à l'ouverture de session de l'utilisateur ? Ce serait plus simple, juste avec DriveGetDrive ou autre...
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Manox
Niveau 3
Niveau 3
Messages : 43
Enregistré le : mar. 18 déc. 2012 10:56
Status : Hors ligne

Re: [..] Créer un processus sur le compte utilisateur connec

#3

Message par Manox »

Corrigé, désolé, chez moi la taille du code est fixe...

Sinon, le problème c'est que l'outil est sensé questionné un poste utilisateur en temps réel... Donc je ne peux pas trop passer par le loginscript etc...

La problématique du code, c'est qu'il est lancé avec un system account et doit pouvoir être upgradé en current user le temps de lancer le net use et de sortir...

Ce que le code en C# à l'air de faire mais je m'y connais pas assez C# :(
Manox
Niveau 3
Niveau 3
Messages : 43
Enregistré le : mar. 18 déc. 2012 10:56
Status : Hors ligne

Re: [..] Créer un processus sur le compte utilisateur connec

#4

Message par Manox »

Résolu, il manquait ceci dans le code :

Code : Tout sélectionner

DllStructSetData($tSTARTUPINFO, "Desktop", "WinSta0\Default")
DllStructSetData($tSTARTUPINFO, "Flags", $STARTF_USESHOWWINDOW + $STARTF_FORCEONFEEDBACK)
DllStructSetData($tSTARTUPINFO, "ShowWindow", @SW_HIDE)
Répondre