Ajouter un commentaire

fredericmazue

Il y a erreur dans ton script et deux remarques supplémentaires à faire. Surtout dues au fait qu'apprendre Python en même que de faire du COM sour Windows est assez particulier.
Voici le script corrigé

# -*- coding: iso-8859-1 *-*

import win32com.client 
user ="username" 
domain = "domain" 

objOU = win32com.client.GetObject("WinNT://" + domain + "/" + user + ",user") 


for grp in objOU.Groups(): 
    print grp.Name.encode('iso-8859-1', 'ignore') 

Première ligne.
Si tu utilises un Python 2.4 ou plus, il est sage (Windows COM ou pas) de spécifier un encodage de caractères, surtout si tu dois récupérer des chaînes de quelque part, sans savoir à l'avance ce qu'elles contiennent (et c'est le cas ici justement).
Mais ceci ne concernait pas ton erreur.

En ce qui concerne ton erreur, tu as écrit:

for grp in objOU.Groups

La subtilité est que objOU.Groups est une interface COM/Automation là. Ce n'est donc pas une liste de chaînes comme tu le pensais. Pas une liste, donc pas une séquence, donc tu peux pas itérer dedans, d'où ton message d'erreur.
Python fait une différence entre une méthode, une fonction et l'appel de la fonction ou de la méthode. L'intérêt est qu'ainsi tu peux passer des fonctions à d'autres fonctions sans les appeler, bref faire de la programmation fonctionnelle avec Python. Pour appeler une fonction (et ici la méthode de l'interface COM, ça revient au même) faut le demander. Donc:
for grp in objOU.Groups()

Enfin, j'ai ajouté un appel à encode pour les chaînes à imprimer. Si ça se trouve il n'y a pas besoin. Mais *attention* tu fais du COM, donc le système (Windows) retourne ce qu'il veut (unicode, ascii, etc) sans te demander ton avis. Dans cette situation, avec l'appel à encode tu es tranquille quoi qu'il arrive.

Bon Python :D (Un de mes langages favoris)

Filtered HTML

Plain text

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
 K  K  EEEE  PPPP   ZZZZZ  III 
K K E P P Z I
KK EEE PPPP Z I
K K E P Z I
K K EEEE P ZZZZZ III