Page 1 sur 1

[R] Script pour "Executer en tant que"

Posté : mer. 25 juin 2008 19:23
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

Re: Script pour "Executer en tant que"

Posté : mer. 25 juin 2008 22:16
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!

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

Posté : jeu. 26 juin 2008 09:20
par Ellky
Merci, je vais prendre le temps de tester tout ça :D

Re: Script pour "Executer en tant que"

Posté : jeu. 26 juin 2008 10:00
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: