[..] Exécuter macro AutoIt sur poste distant

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
davzell
Niveau 5
Niveau 5
Messages : 105
Enregistré le : jeu. 26 sept. 2013 14:15
Status : Hors ligne

[..] Exécuter macro AutoIt sur poste distant

#1

Message par davzell »

Salut tout le monde.

Voila pour un programme j'aurais besoin de savoir ou pointe le répertoire Appdata d'un poste distant

la macro @AppDataDir me permet exactement ce que je veux faire mais sur le poste qui exécute l'exe.

Comment pourrais je faire exécuter cette macro sur un poste distant et récupérer le résultat sur le poste qui exécute le programme ?

Ou alors est ce qu'il vaut mieux passer en dos avec @Compspec et les commandes qui permettent de récupérer les résultat ?


merci d'avance.
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] executer macro autoit sur poste distant

#2

Message par jguinch »

Le répertoire AppData est propre à chaque utilisateur, il n'est pas propre à l'ordinateur.
@AppData correspond au chemin propre à l'utilisateur qui exécute le script, non pas à l'ordinateur.
Quel est le besoin ? Copier des fichiers ?
As-tu un compte admin pour te connecter sur le poste distant ? Est-ce que le poste distant est membre d'un domaine ?
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
davzell
Niveau 5
Niveau 5
Messages : 105
Enregistré le : jeu. 26 sept. 2013 14:15
Status : Hors ligne

Re: [..] executer macro autoit sur poste distant

#3

Message par davzell »

jguinch a écrit :Le répertoire AppData est propre à chaque utilisateur, il n'est pas propre à l'ordinateur.
@AppData correspond au chemin propre à l'utilisateur qui exécute le script, non pas à l'ordinateur.
Quel est le besoin ? Copier des fichiers ?
As-tu un compte admin pour te connecter sur le poste distant ? Est-ce que le poste distant est membre d'un domaine ?

je suis admin pour me connecter au poste distant qui est sur un domaine.

j'ai besoin de lire un fichier de log qui est dans appdata du poste distant.

Sur certains poste j'ai plusieurs profil
par exemple un profil Administrateur, profil Administrateur.LOCAL....


il faudrait que je sache lequel est utilisé sur le poste distant pour chercher le log dans le bon répertoire.
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] executer macro autoit sur poste distant

#4

Message par jguinch »

Est-ce que tu peux accéder à la base de registre à distance ?
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
davzell
Niveau 5
Niveau 5
Messages : 105
Enregistré le : jeu. 26 sept. 2013 14:15
Status : Hors ligne

Re: [..] executer macro autoit sur poste distant

#5

Message par davzell »

jguinch a écrit :Est-ce que tu peux accéder à la base de registre à distance ?
oui faudra juste gérer le démarrage du service registre a distance si il est pas lancé.
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] executer macro autoit sur poste distant

#6

Message par jguinch »

Si c'est le même utilisateur des deux côtés, tu peux essayer ça :
► Afficher le texte
Apparemment, pas besoin de pouvoir accéder à la base de registre à distance.
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
davzell
Niveau 5
Niveau 5
Messages : 105
Enregistré le : jeu. 26 sept. 2013 14:15
Status : Hors ligne

Re: [..] executer macro autoit sur poste distant

#7

Message par davzell »

ok par contre ce ne sera jamais le même utilisateur de chaque coté.

Généralement je lancerai ça depuis un poste client vers un serveur.

Donc sur le poste client il y a une session par exemple "User01" et sur le serveur une session "administreur.nom_du_domaine"
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] executer macro autoit sur poste distant

#8

Message par jguinch »

Désolé, je ne comprends plus vraiment le besoin...
- tu veux lancer ton programme depuis n'importe quel poste client (connecté avec n'importe quel utilisateur)
- tu veux que ton programme aille lire un fichier de log qui se trouve sur le serveur, dans le profil administrateur

-> est-ce que ce sera toujours dans le profil administrateur ?
-> tu vas avoir un problème de droits pour que ton programme (qui s'exécute sous un compte utilisateur) aille lire un fichier dans le profil administrateur
-> est-ce que tu peux exécuter le programme en tant qu'un compte admin ?
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
davzell
Niveau 5
Niveau 5
Messages : 105
Enregistré le : jeu. 26 sept. 2013 14:15
Status : Hors ligne

Re: [..] executer macro autoit sur poste distant

#9

Message par davzell »

en gros depuis un poste utilisateur (sans droits admin) je lance un programme qui va lire un fichier de log dans le profil administrateur du serveur.
Avant de lancer la lecture du log il y a une gui ou je spécifie le nom d'utilisateur et le le mot de passe admin pour pouvoir accéder au serveur sans soucis.

cette partie fonctionne très bien.

Le problème est que sur certains serveurs j'ai plusieurs profil, un profil "Administrateur", un profil "Administrateur.nom_du_domaine"...

Il faudrait que je sache dans lequel est mon fichier de log.
davzell
Niveau 5
Niveau 5
Messages : 105
Enregistré le : jeu. 26 sept. 2013 14:15
Status : Hors ligne

Re: [..] executer macro autoit sur poste distant

#10

Message par davzell »

l'idée que j'avais sinon est de lister tous les répertoire que j'ai dans C:\USERS et chercher mon log dans tout ceux qui s'appel Administrateur
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Exécuter macro AutoIt sur poste distant

#11

Message par jguinch »

Désolé, j'ai pas trop le temps ces prochains jours (et ce soir non plus)...
Ce que tu peux faire, c'est effectivement chercher dans les différents répertoires. Ca sera peut-être un peu long, mais bon, si tu sais exactement où regarder dans le profil ça devrait aller.

Sinon, juste une idée : tu pourrais, après avoir demandé le login/mot de passe admin, lancer ton exécutable avec le compte admin. Ce permettrait d'exécuter le bout de code que j'ai posté... Bon, il faut (forcément) que le compte en question soit un compte du domaine (mais je ne sais pas si tu parles de compte admin local du serveur ou compte admin du domaine).


Si tu parviens à démarrer le service RemoteRegistry, ça sera plus simple en accédant à la base de registre. Pour y accéder à distance, il suffit de spécifier le nom de machine :
RegRead("\\NOMDUPOSTE\HKEY_LOCAL_MACHINE\...", "clé")
Pour spécifier un login/mot de passe pour accéder à la base de registre à distance, il suffit de connecter un lecteur réseau en tant que l'utilisateur voulu (admin en l'occurence).

L'emplacement des profils est défini dans HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\Default
Chaque clé correspond à un SID : celui de l'administrateur local (si c'est ce que tu veux) commence par S-1-5-21 et fini par -500.

En local, ça donne ça :
► Afficher le texte
Pour configurer et démarrer le service à distance, tu peux utiliser psexec, ou même la commande SC avec un compte adapté.
Voilà, désolé pour le tout en vrac, je suis un peu à la bourre...
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
davzell
Niveau 5
Niveau 5
Messages : 105
Enregistré le : jeu. 26 sept. 2013 14:15
Status : Hors ligne

Re: [..] Exécuter macro AutoIt sur poste distant

#12

Message par davzell »

ouai pour lire le registre j'avais plutôt fait un runas avec la macro @compspec pour utiliser la commande regquery.
comme ça l'authentification est géré directement.

Je vais voir si je trouve comment lister tous mes répertoires.

merci pour l'aide


Edit:

J'ai commencé en utilisant le listing des répertoires

j'ai fait ce code pour lister mes répertoires contenant "administrateur" et me renommer le fichier de log

Code : Tout sélectionner

Func listfolder()

Local $aFileList = _FileListToArray($test, "Administrateur*")
;~ _ArrayDisplay($aFileList, "$aFileList")


$numadmin = $aFileList [0]



For $i = 1 To $numadmin


    $admin1 = $aFileList [$i]
    $NomPC = "pc"

    $pathAdmin1 = "\\" & $NomPC & "\c$\users\" & $admin1 & "\AppData\Roaming\testLogfile.log"



    If FileExists($pathAdmin1) Then
    FileMove("\\" & $NomPC & "\c$\users\" & $admin1 & "\AppData\Roaming\Test\testLogfile.log", "\\" & $NomPC & "\c$\users\" & $admin1 & "\AppData\Roaming\test\testLogfile2.log", 1)
Else
;~  MsgBox(4096, "path:", "pas de log")
EndIf

Next



EndFunc
Répondre