commande dos...

Le
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 //,$groupes;
for my $thisGroup (@groups) {
printf ("%04d:$thisGroup",$count++);
$cmd="dsget group $thisGroup -members -limit 0";
print " $cmd";
my $utilisateurs=qx/$cmd/;
my @users=split//,$utilisateurs;
for my $thisUser (@users) {
print " $thisUser";
}
print "";
}


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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Paul Gaborit
Le #20742261
À (at) Thu, 10 Dec 2009 12:21:25 +0100,
"kurtz_le_pirate"
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 - Perl en français -
kurtz_le_pirate
Le #20744391
"Paul Gaborit" news:

À (at) Thu, 10 Dec 2009 12:21:25 +0100,
"kurtz_le_pirate"
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 - Perl en français -

Paul Gaborit
Le #20747721
À (at) Fri, 11 Dec 2009 11:02:29 +0100,
"kurtz_le_pirate"
"Paul Gaborit" 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 - Perl en français -
sdeseille
Le #20751791
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
À (at) Fri, 11 Dec 2009 11:02:29 +0100,
"kurtz_le_pirate"
> "Paul Gaborit" > 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 - Perl en français -

Publicité
Poster une réponse
Anonyme