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

commande dos...

4 réponses
Avatar
kurtz_le_pirate
bonjour,

j'utilise les commandes 'dos' dsquery et dsget pour récupérer les infos dans
un ad microsoft.

---
$cmd='dsquery group DC=groupe-ufg,DC=com -limit 0';
my $groupes=qx/$cmd/;
my @groups=split /\n/,$groupes;
for my $thisGroup (@groups) {
printf ("%04d:$thisGroup\n",$count++);
$cmd="dsget group $thisGroup -members -limit 0";
print " $cmd\n";
my $utilisateurs=qx/$cmd/;
my @users=split/\n/,$utilisateurs;
for my $thisUser (@users) {
print " $thisUser\n";
}
print "\n";
}
---

le /dsquery/ fonctionne bien.
le /dsget group/ non.
dans la deuxieme bouche, j'affiche la commande dos $cmd
si je fais un copier/coller de cette commande, ça fonctionne bien.
donc, pourquoi pas dans le perl ??

si vous avez une piste, merci d'avance :)


--
klp

4 réponses

Avatar
Paul Gaborit
À (at) Thu, 10 Dec 2009 12:21:25 +0100,
"kurtz_le_pirate" écrivait (wrote):

j'utilise les commandes 'dos' dsquery et dsget pour récupérer les
infos dans un ad microsoft.



Ce sont plutôt des commandes 'windows'... Mais pourquoi passer par des
commandes externes alors qu'il existe de puissants modules Perl pour
faire du LDAP ?

---
$cmd='dsquery group DC=groupe-ufg,DC=com -limit 0';
my $groupes=qx/$cmd/;
my @groups=split /n/,$groupes;
for my $thisGroup (@groups) {
printf ("%04d:$thisGroupn",$count++);
$cmd="dsget group $thisGroup -members -limit 0";
print " $cmdn";
my $utilisateurs=qx/$cmd/;
my @users=split/n/,$utilisateurs;
for my $thisUser (@users) {
print " $thisUsern";
}
print "n";
}
---



Pourriez-vous indenter votre code correctement pour en faciliter la
lecture et donc la compréhension ? Merci.

le /dsquery/ fonctionne bien.
le /dsget group/ non.
dans la deuxieme bouche, j'affiche la commande dos $cmd
si je fais un copier/coller de cette commande, ça fonctionne bien.
donc, pourquoi pas dans le perl ??



Aucune idée...

--
Paul Gaborit - <http://perso.mines-albi.fr/~gaborit/>
Perl en français - <http://perl.mines-albi.fr/>
Avatar
kurtz_le_pirate
"Paul Gaborit" a écrit dans le message de
news:

À (at) Thu, 10 Dec 2009 12:21:25 +0100,
"kurtz_le_pirate" écrivait (wrote):

j'utilise les commandes 'dos' dsquery et dsget pour récupérer les
infos dans un ad microsoft.



Ce sont plutôt des commandes 'windows'... Mais pourquoi passer par des
commandes externes alors qu'il existe de puissants modules Perl pour
faire du LDAP ?



je n'ai pas eu le temps de fouiller le Net::LDAP pour trouver l'équivalent
de ces deux commandes.



---
$cmd='dsquery group DC=groupe-ufg,DC=com -limit 0';
my $groupes=qx/$cmd/;
my @groups=split /n/,$groupes;
for my $thisGroup (@groups) {
printf ("%04d:$thisGroupn",$count++);
$cmd="dsget group $thisGroup -members -limit 0";
print " $cmdn";
my $utilisateurs=qx/$cmd/;
my @users=split/n/,$utilisateurs;
for my $thisUser (@users) {
print " $thisUsern";
}
print "n";
}
---



Pourriez-vous indenter votre code correctement pour en faciliter la
lecture et donc la compréhension ? Merci.



désolé :(


le /dsquery/ fonctionne bien.
le /dsget group/ non.
dans la deuxieme bouche, j'affiche la commande dos $cmd
si je fais un copier/coller de cette commande, ça fonctionne bien.
donc, pourquoi pas dans le perl ??



Aucune idée...





--
Paul Gaborit - <http://perso.mines-albi.fr/~gaborit/>
Perl en français - <http://perl.mines-albi.fr/>


Avatar
Paul Gaborit
À (at) Fri, 11 Dec 2009 11:02:29 +0100,
"kurtz_le_pirate" écrivait (wrote):

"Paul Gaborit" a écrit dans le message
de news:
Ce sont plutôt des commandes 'windows'... Mais pourquoi passer par des
commandes externes alors qu'il existe de puissants modules Perl pour
faire du LDAP ?



je n'ai pas eu le temps de fouiller le Net::LDAP pour trouver
l'équivalent de ces deux commandes.



Si le besoin est ponctuel, c'est compréhensible. Sinon, je vous incite
vivement à l'utiliser. Cela facilite beaucoup la tâche.

Aucune idée...





Je complète : je suppose que le problème constaté provient de la
manière dont Perl appelle "cmd" pour lui demander d'interpréter la
ligne de commande afin d'appeler la commande voulue avec les bons
paramètres.... Mais sans voir les données réelles, ce ne sont que des
suppositions.

--
Paul Gaborit - <http://perso.mines-albi.fr/~gaborit/>
Perl en français - <http://perl.mines-albi.fr/>
Avatar
sdeseille
Bon je ne suis pas sur que mon mail ait été correctement envoyé.

Bonjour

J'ai souvent fait des encapsulations de programmes windows avec du
perl et notamment avec les fonctions system et open de Perl.

Ce qu'il faut vérifier c'est si la sortie de la commande produit
quelque chose sur la sortie standard classique. J'ai déjà rencontré
des cas ou la sortie d'un programme se faisait sur l'équivalent de la
sortie erreur alors que tout était correct.

Je vais voir si je peux reproduire le cas chez moi. Il faut juste que
je vérifie que j'ai les outils nécessaires.



On 11 déc, 17:51, Paul Gaborit wrote:
À (at) Fri, 11 Dec 2009 11:02:29 +0100,
"kurtz_le_pirate" écrivait (wrote):

> "Paul Gaborit" a écrit dans le message
> denews:
>> Ce sont plutôt des commandes 'windows'... Mais pourquoi passer par d es
>> commandes externes alors qu'il existe de puissants modules Perl pour
>> faire du LDAP ?

> je n'ai pas eu le temps de fouiller le Net::LDAP pour trouver
> l'équivalent de ces deux commandes.

Si le besoin est ponctuel, c'est compréhensible. Sinon, je vous incite
vivement à l'utiliser. Cela facilite beaucoup la tâche.

>> Aucune idée...

Je complète : je suppose que le problème constaté provient de la
manière dont Perl appelle "cmd" pour lui demander d'interpréter la
ligne de commande afin d'appeler la commande voulue avec les bons
paramètres.... Mais sans voir les données réelles, ce ne sont que d es
suppositions.

--
Paul Gaborit - <http://perso.mines-albi.fr/~gaborit/>
Perl en français - <http://perl.mines-albi.fr/>