Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Problèmes multiples avec runas (via xrunas.vbs)

9 réponses
Avatar
ROGEON Eric
Avé ;o)

L'année dernière, j'ai créé un script VBS qui permet aux utilisateurs du
réseau de créer automatiquement un dossier d'affaire (sur le serveur) à
partir d'un dossier modèle (contenant des sous-dossiers et des
fichiers).
Ce script utilise la commande ROBOCOPY via un SHELL.RUN. La commande
exacte est la suivante :

---début de l'extrait---
s = SCRIPTCHEMIN & "\robocopy.exe ""Dossier-modèle"" """ & CHEMINAFFAIRE
& "\" & AFFAIREN &""" /E /SEC"
r = shell.Run(s,1,TRUE)
---fin de l'extrait---

Jusqu'alors, le script fonctionnait à merveille, mais pour des raisons
de sécurité, j'ai dû modifier les permissions sur les dits dossiers.
J'ai pour cela créé un profil spécifique (non administrateur mais ayant
les droits complets sur ce dossier) dans l'AD et j'ai ensuite complété
le script de la manière suivante :

---début de l'extrait---
s = SCRIPTCHEMIN & "\robocopy.exe ""Dossier-modèle"" """ & CHEMINAFFAIRE
& "\" & AFFAIREN &""" /E /SEC"
s = SCRIPTCHEMIN & "\xrunas.vbs /user:toto@domaine.fr /pwd:toto " & s
r = shell.Run(s,1,TRUE)
---fin de l'extrait---

Quand je lance le script, celui-ci ne met aucun message d'erreur mais le
nouveau dossier n'est pas créé !
Peut-être y a t'il un message d'erreur, mais je n'ai pas le temps de le
lire car la console se ferme aussitôt.

J'ai essayé de taper la commande manuellement dans une console :

---début commande saisie---
xrunas.vbs /user:toto@domaine.fr /pwd:toto robocopy.exe "Dossier-modèle"
"K:\affaires\nom du nouveau dossier avec des espaces" /E /SEC
---fin commande saisie---

mais là aussi, une autre console s'ouvre et se referme aussitôt sans
que j'ai le temps de lire ce qu'il y a dedans.

J'ai ensuite essayé de taper la commande manuellement mais directement
avec RUNAS sans passer par XRUNAS :

---début commande saisie---
runas /user:toto@domaine.fr robocopy.exe "Dossier-modèle"
"K:\affaires\nom du nouveau dossier avec des espaces" /E /SEC
---fin commande saisie---

là, il m'affiche le message d'aide de la commande. Il ne me demande même
pas le mot de passe !?...

J'ai ensuite essayé la commande sans les arguments :

---début commande saisie---
runas /user:toto@domaine.fr robocopy.exe
---fin commande saisie---

là, il me demande bien le mot de passe, mais ensuite, j'ai le message
suivant :

---début du message---
Erreur de RUNAS : Impossible d'exécuter - robocopy.exe
3 : Le chemin d'accès spécifié est introuvable.
---fin du message---

Si je relance la commande en spécifiant le chemin réseau :

---début commande saisie---
runas /user:toto@domaine.fr \\serveur\dossier\affaires\robocopy.exe
---fin commande saisie---

Le programme se lance bien !?...

Je précise que les chemins peuvent parfois être de la forme
"K:\affaires\" et parfois "\\Serveur\dossier\affaires\" suivant que
l'utilisateur possède ou pas un lecteur réseau.
Il semblerait que la fonction "runas" ne supporte pas les lecteurs
réseaux ?

Par contre, je me suis aperçu que xrunas à créé un fichier SETSCRIPT.BAT
et que dans celui-ci, les arguments avait perdus leurs guillemets. Je ne
suis pas parvenu à régler ce problème sachant que les 2 commandes
imbriquées (ROBOCOPY et XRUNAS) ont toutes les deux des paramètres.
J'ai essayé avec et sans le lecteur réseau, et cela donne cela :

---début SETSCRIPT.BAT avec---
@echo off
cscript //H:CScript //S /Nologo
"k:\affaires\xrunas.vbs" /user:toto@domaine.fr /pwd:toto
K:\Affaires\robocopy.exe Dossier-modèle K:\Affaires\nom du nouveau
dossier avec des espaces /E /SEC

---fin SETSCRIPT.BAT avec---

---début SETSCRIPT.BAT sans---
@echo off
cscript //H:CScript //S /Nologo
"\\serveur\dossier\affaires\xrunas.vbs" /user:toto@domaine.fr /pwd:toto
\\Serveur\dossier\Affaires\robocopy.exe Dossier-modèle
\\Serveur\dossier\Affaires\nom du nouveau dossier avec des espaces /E
/SEC

---fin SETSCRIPT.BAT sans---

On aperçoit bien que tous les guillemets on disparus !

En conclusion, il semblerait que j'ai 2 problèmes à régler :
1-Mettre des chemins sans lettre de lecteur dans la ligne de commande
finale
2-Régler ce problème de guillemet qui disparaissent

Pourriez-vous me confirmer le point 1 et m'aider pour le point 2 s'il
vous plait car là je n'avance plus. :o(

Config : 1 Serveur W2k qui fait tout (domaine AD, TS, fichiers) avec
postes clients W2k, XP et peut-être un jour VISTA

D'avance merci et désolé pour la longueur du message ;o)

--
Eric R.

9 réponses

Avatar
MCI \(ex do ré Mi chel la si do\) [MVP]
Bonsoir !

Tu es le candidat idéal, pour tester mon utilitaire runlike.exe
Il est dispo là :
http://www.mclaveau.com/batch/util.html#314

Un retour de test, pour me dire si ça a marché, serait le bienvenu.
Merci d'avance.

@-salutations
--
Michel Claveau
Avatar
MCI \(ex do ré Mi chel la si do\) [MVP]
Re !

Comme par hasard, MarkRussinovitch (Microsoft, ex-Sysinternals) vient de
dégainer son "ShellRunAs.exe".
Voir : http://technet.microsoft.com/en-us/sysinternals/cc300361.aspx

@-salutations
--
Michel Claveau
Avatar
ROGEON Eric
"MCI (ex do ré Mi chel la si do) [MVP]"
a écrit dans le message de news:

Bonsoir !

Tu es le candidat idéal, pour tester mon utilitaire runlike.exe
Il est dispo là :
http://www.mclaveau.com/batch/util.html#314

Un retour de test, pour me dire si ça a marché, serait le bienvenu.
Merci d'avance.

@-salutations
--
Michel Claveau



Avé ;o)


J'ai testé ton programme sans succès!?...

Lors du lancement, j'ai le message d'erreur suivant :

---Début---
AutoIt Error
Line -1:
Error: Unable to execute the external program.
Echec d'ouverture de session : nom d'utilisateur inconu ou mot de passe
incorrect.
---Fin---

J'ai donc ensuite essayé sans nom d'utilisateur et j'ai le même message
sauf qu'à la place de la dernière ligne, il y a texte illisible.
Je précise qu'il s'agit d'un profil du domaine et non d'un profil local.

Pourriez-vous répondre a mes questions s'il vous plaît ?
Merci
--
Eric R.

Avatar
ROGEON Eric
Avé ;o)

A partir d'une console, j'ai lancé la commande (positionné sur
K:affaires):

runas /user: serveurdosieraffairesmonscript.vbs

Il me damnde bien le mot de passe mais j'ai le message d'erreur suivant
en retour :

193 : serveurdossieraffairesmonscript.vbs n'est pas une application
Win32 valide.

Il s'agit peut-être d'un 3ème problème !?...

Ce qui est bizare, c'est que si je tappe directement "monscript.vbs", il
se lance correctement.

A+
Avatar
ROGEON Eric
"ROGEON Eric" <info-Aentouré-boutillet-paslavirgule-fr> a écrit dans le
message de news:
Avé ;o)

A partir d'une console, j'ai lancé la commande (positionné sur
K:affaires):

runas /user: serveurdosieraffairesmonscript.vbs

Il me damnde bien le mot de passe mais j'ai le message d'erreur
suivant en retour :

193 : serveurdossieraffairesmonscript.vbs n'est pas une
application Win32 valide.

Il s'agit peut-être d'un 3ème problème !?...

Ce qui est bizare, c'est que si je tappe directement "monscript.vbs",
il se lance correctement.

A+

Avé ;o)


Je me répond à moi même, il fallait écrire :

runas /user: "wscript
serveurdosieraffairesmonscript.vbs"

avec les guillemets pour corriger ce problème.

Avatar
ROGEON Eric
"ROGEON Eric" <info-Aentouré-boutillet-paslavirgule-fr> a écrit dans le
message de news:
Avé ;o)

L'année dernière, j'ai créé un script VBS qui permet aux utilisateurs
du réseau de créer automatiquement un dossier d'affaire (sur le
serveur) à partir d'un dossier modèle (contenant des sous-dossiers et
des fichiers).
Ce script utilise la commande ROBOCOPY via un SHELL.RUN. La commande
exacte est la suivante :

---début de l'extrait---
s = SCRIPTCHEMIN & "robocopy.exe ""Dossier-modèle"" """ &
CHEMINAFFAIRE & "" & AFFAIREN &""" /E /SEC"
r = shell.Run(s,1,TRUE)
---fin de l'extrait---

Jusqu'alors, le script fonctionnait à merveille, mais pour des raisons
de sécurité, j'ai dû modifier les permissions sur les dits dossiers.
J'ai pour cela créé un profil spécifique (non administrateur mais
ayant les droits complets sur ce dossier) dans l'AD et j'ai ensuite
complété le script de la manière suivante :

---début de l'extrait---
s = SCRIPTCHEMIN & "robocopy.exe ""Dossier-modèle"" """ &
CHEMINAFFAIRE & "" & AFFAIREN &""" /E /SEC"
s = SCRIPTCHEMIN & "xrunas.vbs /user: /pwd:toto " & s
r = shell.Run(s,1,TRUE)
---fin de l'extrait---

Quand je lance le script, celui-ci ne met aucun message d'erreur mais
le nouveau dossier n'est pas créé !
Peut-être y a t'il un message d'erreur, mais je n'ai pas le temps de
le lire car la console se ferme aussitôt.

J'ai essayé de taper la commande manuellement dans une console :

---début commande saisie---
xrunas.vbs /user: /pwd:toto robocopy.exe
"Dossier-modèle" "K:affairesnom du nouveau dossier avec des espaces"
/E /SEC
---fin commande saisie---

mais là aussi, une autre console s'ouvre et se referme aussitôt sans
que j'ai le temps de lire ce qu'il y a dedans.

J'ai ensuite essayé de taper la commande manuellement mais directement
avec RUNAS sans passer par XRUNAS :

---début commande saisie---
runas /user: robocopy.exe "Dossier-modèle"
"K:affairesnom du nouveau dossier avec des espaces" /E /SEC
---fin commande saisie---

là, il m'affiche le message d'aide de la commande. Il ne me demande
même pas le mot de passe !?...

J'ai ensuite essayé la commande sans les arguments :

---début commande saisie---
runas /user: robocopy.exe
---fin commande saisie---

là, il me demande bien le mot de passe, mais ensuite, j'ai le message
suivant :

---début du message---
Erreur de RUNAS : Impossible d'exécuter - robocopy.exe
3 : Le chemin d'accès spécifié est introuvable.
---fin du message---

Si je relance la commande en spécifiant le chemin réseau :

---début commande saisie---
runas /user: serveurdossieraffairesrobocopy.exe
---fin commande saisie---

Le programme se lance bien !?...

Je précise que les chemins peuvent parfois être de la forme
"K:affaires" et parfois "Serveurdossieraffaires" suivant que
l'utilisateur possède ou pas un lecteur réseau.
Il semblerait que la fonction "runas" ne supporte pas les lecteurs
réseaux ?

Par contre, je me suis aperçu que xrunas à créé un fichier
SETSCRIPT.BAT et que dans celui-ci, les arguments avait perdus leurs
guillemets. Je ne suis pas parvenu à régler ce problème sachant que
les 2 commandes imbriquées (ROBOCOPY et XRUNAS) ont toutes les deux
des paramètres.
J'ai essayé avec et sans le lecteur réseau, et cela donne cela :

---début SETSCRIPT.BAT avec---
@echo off
cscript //H:CScript //S /Nologo
"k:affairesxrunas.vbs" /user: /pwd:toto
K:Affairesrobocopy.exe Dossier-modèle K:Affairesnom du nouveau
dossier avec des espaces /E /SEC

---fin SETSCRIPT.BAT avec---

---début SETSCRIPT.BAT sans---
@echo off
cscript //H:CScript //S /Nologo
"serveurdossieraffairesxrunas.vbs" /user:
/pwd:toto ServeurdossierAffairesrobocopy.exe Dossier-modèle
ServeurdossierAffairesnom du nouveau dossier avec des espaces /E
/SEC

---fin SETSCRIPT.BAT sans---

On aperçoit bien que tous les guillemets on disparus !

En conclusion, il semblerait que j'ai 2 problèmes à régler :
1-Mettre des chemins sans lettre de lecteur dans la ligne de commande
finale
2-Régler ce problème de guillemet qui disparaissent

Pourriez-vous me confirmer le point 1 et m'aider pour le point 2 s'il
vous plait car là je n'avance plus. :o(

Config : 1 Serveur W2k qui fait tout (domaine AD, TS, fichiers) avec
postes clients W2k, XP et peut-être un jour VISTA

D'avance merci et désolé pour la longueur du message ;o)

--
Eric R.


Avé ;o)

J'ai réussi à régler mon problème :o)

d'abord, le raccourcis qui lance l'application doit utiliser les chemin
réseau et pas le lecteur réseau :

serveurdossierAffairesxrunas.vbs /user: /pwd:toto
"wscript serveurdossierAffairesmonscript.vbs"

Ensuite, j'ai corrigé la ligne de commande de ROBOCOPY en mettant le
chemin complet du dossier modèle :

---début de l'extrait---
s = SCRIPTCHEMIN & "robocopy.exe """ & SCRIPTCHEMIN &
"Dossier-modèle"" """ & CHEMINAFFAIRE & "" & AFFAIREN &""" /E /SEC"
r = shell.Run(s,0,TRUE)
---fin de l'extrait---

C'est fou le temps que l'on peut passer pour des conneries de genre :o/
Ce que je ne comprend pas, c'est pourquoi RUNAS n'accepte pas les
lecteurs réseaux ?

Bon week end ;o)

Avatar
moi
ROGEON Eric wrote:
(...)
Ce que je ne comprend pas, c'est pourquoi RUNAS n'accepte pas les
lecteurs réseaux ?


à cause du "As" sans doute ;o)

logique, non ?

HB

Avatar
ROGEON Eric
"moi" a écrit dans le message de news:
%
ROGEON Eric wrote:
(...)
Ce que je ne comprend pas, c'est pourquoi RUNAS n'accepte pas les
lecteurs réseaux ?


à cause du "As" sans doute ;o)

logique, non ?


Après réflexion, oui. Mais avec mes compétences limitées, je n'ai pas
penser à çà :o/
Enfin bon, ce qui compte, c'est que cela fonctionne maintenant !

Merci de cette précision, je dormirais moins bête ce soir ;o)


HB



Avatar
moi
ROGEON Eric wrote:
(...)

(...), je dormirais moins bête ce soir ;o)



n'est-ce pas le but de tout bon NG ;o) ?

Bonne continuation,

HB