[R] Script pour "Executer en tant que"

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Ellky
Niveau 1
Niveau 1
Messages : 3
Enregistré le : mer. 25 juin 2008 19:12
Localisation : Nantes
Status : Hors ligne

[R] Script pour "Executer en tant que"

#1

Message par Ellky »

Bonjour à tous,

Nouveau parmi la communauté, je sollicite votre aide...

En effet, je dois créer un script pour mon boulot qui permet à un utilisateur d'utiliser une imprimante partagée avec un progiciel. C'est une logiciel qui date un peu, ne gérant pas les imprimante USB, il faut donc partagé une imprimante, activer le pool et utiliser les ports LPT1 et 2 puis l'indiquer dans la config du logiciel...

En gros, je dois faire un "Exécuter en tant que" pour que cela fonctionne (problème de droit, l'utilisateur n'est pas admin de son poste)

J'ai commencé à élaborer deux scripts mais cela ne fonctionne pas (pour le deuxième, le .bat monte l'imprimante sur le port LPT1 via la commande NET USE). J'ai une erreur sur la ligne 1 mais je ne vois pas ou car la commande RunAs et les arguments sont bons je pense...

Scripts :

RunAs ("administrateur","domaine ou nom du poste","motdepasse")
RunWait("NET USE LPT1: \\Nom du poste ou l'imprimante est partagée/nom de l'imprimante")
RunAsSet()

RunAs ("administrateur","domaine ou nom du poste","motdepasse")
RunWait("C:\0DATA\imp\imp_r.bat")
RunAsSet()


Pouvez-vous m'aider ? Je suis un newbie en scripting :?

Merci
Modifié en dernier par Tlem le jeu. 26 juin 2008 11:27, modifié 2 fois.
Raison : Ajout de la balise [..] dans le titre
Oui je suis un noob et j'en suis conscient...
tplanet
Niveau 1
Niveau 1
Messages : 9
Enregistré le : lun. 16 juin 2008 20:27
Status : Hors ligne

Re: Script pour "Executer en tant que"

#2

Message par tplanet »

Salut,

De un, la commande runas vient avec la nouvelle version de autoit et ne doit pas être confondue avec runasset. Donc

Code : Tout sélectionner

RunAs ("administrateur","domaine ou nom du poste","motdepasse",0,"NET USE LPT1: \\Nom du poste ou l'imprimante est partagée/nom de l'imprimante")
 
ou

Code : Tout sélectionner

RunAsSet ("administrateur","domaine ou nom du poste","motdepasse")
RunWait("NET USE LPT1: \\Nom du poste ou l'imprimante est partagée/nom de l'imprimante")
RunAsSet()
 
Dépendant la version utilisée.

De deux...
Chaque fois qu'on roule un runas, ça démarre un process différant, donc ici on aurait le net use qui se fait et qui se ferme, et ensuite le bat qui roule et qui se ferme. Le process du .bat ne verra pas le net use.

Essaie ceci pour te donner une idée de qui voit quoi;

Code : Tout sélectionner

RunAs ("administrateur","domaine ou nom du poste","motdepasse",0,@ComSpec,@TempDir)
RunAs ("administrateur","domaine ou nom du poste","motdepasse",0,@ComSpec,@TempDir)
Tu vois que les changements que tu fais d'un coté de s'applique pas de l'autre et regarde tes variables d'environnement.

En bref, je te suggère ceci et j'ai bien hâte de trouver mieux;

Code : Tout sélectionner

#cs
un peu tordu, mais bon...   c'est ce que j'utilise faute de mieux
donc...
***si l'utilisateur est admin sur son poste , on saute par dessus tout ça et lance le programme
***si l'utilisateur est pas admin, on copie cette app sur son c: et on le relance en tant qu'admin
***Une fois relancé en tant qu'admin, on saute la première partie, on fait ensuite la connection a l'imp. et lance le programme.
***Lorsqu'on ferme le programme, tout revient comme avant
#ce

#NoTrayIcon

If Not IsAdmin() Then
FileCopy(@AutoItExe, "c:\Tempapp\",8)
  RunAsWait ("admin", "serveur", "motdepasse", 1, "d:\Tempapp\" & @ScriptName, @TempDir)
  DirRemove("d:\Tempapp\",1)
  Exit
EndIf  

;~ Maintenant qu'on est admin on fait le net use et on lance le .bat
RunWait ("NET USE LPT1: \\Nom du poste ou l'imprimante est partagée/nom de l'imprimante",@TempDir)
;~ ou si ça fonctionne pas:  RunWait ("NET USE LPT1: \\Nom du poste ou l'imprimante est partagée/nom de l'imprimante /USER:admin motdepasse",@TempDir)
Sleep (3000)
RunWait("C:\0DATA\imp\imp_r.bat")
Exit
 

Have fun!
-*-*-*-*-*-*-*-*-*-*-*-
Thierry
Ellky
Niveau 1
Niveau 1
Messages : 3
Enregistré le : mer. 25 juin 2008 19:12
Localisation : Nantes
Status : Hors ligne

Re: [..] Script pour "Executer en tant que"

#3

Message par Ellky »

Merci, je vais prendre le temps de tester tout ça :D
Oui je suis un noob et j'en suis conscient...
Ellky
Niveau 1
Niveau 1
Messages : 3
Enregistré le : mer. 25 juin 2008 19:12
Localisation : Nantes
Status : Hors ligne

Re: Script pour "Executer en tant que"

#4

Message par Ellky »

tplanet a écrit :

Code : Tout sélectionner

RunAs ("administrateur","domaine ou nom du poste","motdepasse",0,"NET USE LPT1: \\Nom du poste ou l'imprimante est partagée/nom de l'imprimante")
Hé bien ça marche niquel sur le poste de l'utilisateur concerné ! Yeah !

Si ça marche sur son poste, ça veut dire que je peux passer sur les autres ayant ce problème, juste en modifiant les variables et ne plus être emm.... ! :lol:

Je te remercie pour tes explications détaillées :wink:
Oui je suis un noob et j'en suis conscient...
Répondre