Script batch: Unable to locate a Runas proces

Résolu/Fermé
Signaler
Messages postés
109
Date d'inscription
mardi 12 mai 2009
Statut
Membre
Dernière intervention
6 septembre 2013
-
Messages postés
109
Date d'inscription
mardi 12 mai 2009
Statut
Membre
Dernière intervention
6 septembre 2013
-
Bonjour les gens !

J'ai un soucis avec le script suivant (il fonctione sous XP et seven 32 bits)

J'utilise Sanur parce que j'ai besoin de passer des commandes admin sans devoir taper le mot de passe.

je vous copie colle un bout du script:

set utilisateur=%username%
if not exist "c:\Windows\sanur" (mkdir c:\Windows\sanur) 
if not exist "C:\Windows\sanur\sanur.exe" (copy "\\serveur\softs\sanur.exe" "C:\Windows\sanur\sanur.exe") 
if not exist "C:\WINDOWS\system32\psexec.exe" (copy "\\serveur\softs\psexec.exe" "C:\WINDOWS\system32\psexec.exe") 
cd %homepath% 
if exist Desktop (GOTO :desktop) 

:desktop 
cd %homepath%\Desktop 
if not exist Travail (mkdir Travail) else (runas /u:DOMAINE\administrateur "psexec \\serveur D:\synchro.bat %utilisateur%" | C:\Windows\sanur\sanur.exe ploplop & GOTO :FIN) 
net share Travail_%utilisateur%$ /DELETE 
set variable="xcopy \\serveur\users\%utilisateur%\Travail\*.* "%homepath%"\Desktop\Travail\ /e" 
runas /u:DOMAINE\administrateur "%variable%" | C:\Windows\sanur\sanur.exe ploplop 
set variable3=C:%homepath%\Desktop\Travail 
set partage=Travail_%utilisateur%$ 
set variable4=net share %partage%=%variable3% 
runas /u:DOMAINE\administrateur "%variable4%" | C:\Windows\sanur\sanur.exe ploplop 
runas /u:DOMAINE\administrateur "psexec \\aral cacls \\adriatique\users\%utilisateur%\Travail /E /R %utilisateur%@domaine.priv" | C:\Windows\sanur\sanur.exe ploplop 
GOTO :FIN 

:FIN 
exit


Donc en gros c'est un script de synchronisation, mais à chaque fois il met unable to locate a Runas process ... :(
Et je ne vois pas pourquoi et comment régler le problème

Merci, et bonnes journée :)

4 réponses

Messages postés
313
Date d'inscription
mercredi 30 mars 2011
Statut
Membre
Dernière intervention
8 juin 2016
129
Bonjour,

Plusieurs choses dans ce script (à moins qu'il ne manque des lignes...) :
1- Sur le test : if exist Desktop (GOTO :desktop) quoiqu'il arrive on déroule dans tous les cas la section qui suit :Desktop (donc à quoi cela sert-il ?)
2 - Si votre OS est en français (pour ma part j'ai un XP en français) et le sous-répertoire ..\Desktop n'existe pas mais plutôt ..\Bureau
En fait on ne sera jamais jamais dans le répertoire %homepath%\Desktop (sauf si sur votre micro il a été créé manuellement) et cela doit perturber le reste du script.

Il ne faut pas hésiter à mettre des pauses juste après les lignes de commande clé avec un Echo juste avant, cela vous aidera dans votre recherche ou vous pouvez tester les errorlevel si l'exécutable en donne après son exécution.

Exemple :
runas ......................
Echo exécution du Runas pour la variable %variable4%
Pause

Test d'erreur level :
If errorlevel xx .....

Cdlt.
0
Messages postés
109
Date d'inscription
mardi 12 mai 2009
Statut
Membre
Dernière intervention
6 septembre 2013
1
Alors oui c'est juste un morceau du script, je reprend juste parce qu'il a eu besoin d'être modifié

Donc l'histoire du :Desktop: c'est en fait un test pour savoir si on est sur XP ou 7, et mon prédécesseur a utilisé cette méthode, même si y a mieux, elle fonctionne, quelque soit la langue de l'OS.

Je testerais avec les pause et echo, puisque je ne le faisais pas, pareil avec les test d'erreur level.
0
Messages postés
313
Date d'inscription
mercredi 30 mars 2011
Statut
Membre
Dernière intervention
8 juin 2016
129
OK pour le répertoire \Desktop.

La version de votre Sanur.exe, fonctionne-t-elle sous Win7 ??? (en revanche je suis sûr qu'elle fonctionne sous XP).

D'autre part voilà ce que j'ai trouvé sur Runas et Sanur en même temps :

Bien prendre en compte la redirection des erreurs pour ne pas perturber Sanur

....>&2 permet d'éviter de rediriger les erreurs vers Sanur

- Utiliser la commande Runas dans un fichier de script :
"Sanur" se télécharge à partir de cette adresse : http://www.commandline.co.uk/index.html Une fois l'archive ZIP décompressée (Sanur.zip) vous disposez d'un simple fichier exécutable nommé Sanur.exe. Ce programme est compatible avec Windows 2000 et ultérieur. La syntaxe est la suivante :
Runas <options> | Sanur Mot_De_Passe
Runas <options> | Sanur /i [Lecteur:][Chemin]Nom_Fichier
Le commutateur /i vous permet de spécifier l'emplacement et le nom d'un fichier dans lequel est stocké le mot de passe.
Une façon d'éviter les problèmes est d'ajouter une redirection afin que les erreurs ne soient pas redirigés vers "Sanur". Imaginons que vous souhaitiez lancer une programme à partir d'un compte nommé Jean, possédant des privilèges d'administrateur et dont le mot de passe soit "Passe", saisissez :
runas /user:jean "cmd /k dir c:\test"
Dans ce cas il vous sera demandé de saisir le mot de passe de Jean. Vous devez donc être physiquement présent ! Ce qui rend toute intégration de la commande dans un script complètement impossible. La même commande en utilisant "Sanur" donne ceci :
runas /user:jean "cmd /k dir c:\test" >&2 | sanur passe
Si le mot de passe est stocké dans un fichier nommé Passe.txt placé à la racine du lecteur C:, saisissez :
runas /user:jean "cmd /k dir c:\test" >&2 | sanur /i c:\passe.txt
Si le chemin de la commande contient des espaces vous devez inscrire le nom de fichier ou de répertoire court. Imaginons que ce répertoire se nomme "Nouveau répertoire".
runas /user:jean "cmd /k dir c:\NOUVEA~1" >&2 | sanur passe

************************************************************
En tenant compte de ces remarques, essayez de faire un petit script très simpliste en utilisant Runas et Sanur en même temps et qui déclencherait par exemple un autre script très simple avec juste un echo et une pause pour dire que ce petit script a été lancé par la commande Runas.

Cdlt.
0
Messages postés
109
Date d'inscription
mardi 12 mai 2009
Statut
Membre
Dernière intervention
6 septembre 2013
1
Merci pour toutes ces informations supplémentaires, j'en aurais surement besoin pour la suite.
Je ne connaissais pas le truc sur la redirection des erreurs.

En fait la totalité du script fonctionnait sous Windows 7 et XP, en revanche, pas sur la version 64 bits de Windows 7. c'était simplement ça le problème, même si je reconnais que le script est pas coder de la meilleure des façons ))

Bonne journée, et encore merci.
0