2016-04-11 11 views
0

Aşağıdaki komut dosyasını çalıştırmak, MasterGroupList öğesinin girişlerinin% 60'ında çalışır, ancak aniden aşağıdaki hatayla başarısız olur. Her ne kadar benim sorularım zayıf görünüyorsa da, çocuklar bana daha önce yardımcı olabilirler. Bu hatayı almayı nasıl engelleyebileceğime dair bir fikrin var mı? ya da senaryodan kaçınıyor mu? masterGroupList benziyor:Python active_directory dosyasında AttributeError nasıl çözülür?

SET00 PowerUser

SET00 KULLANICILARI

SEF00 CREATORS

SEF00 KULLANICILARI

AD çekti

Gruplar ... Başka 300 girdileri ...

Hata:

Traceback (most recent call last): 
    File "C:\Users\ks185278\OneDrive - NCR Corporation\Active Directory Access Scr 
ipt\test.py", line 44, in <module> 
    print group.member 
    File "C:\Python27\lib\site-packages\active_directory.py", line 805, in __getat 
tr__ 
    raise AttributeError 
AttributeError 

Kodu:

from active_directory import * 
import os 

file = open("C:\Users\NAME\Active Directory Access Script\MasterGroupList.txt", "r") 
fileAsList = file.readlines() 
indexOfTitle = fileAsList.index("Groups Pulled from AD\n") 
i = indexOfTitle + 1 
while i <= len(fileAsList): 
    fileLocation = 'C:\\AD Access\\%s\\%s.txt' % (fileAsList[i][:5], fileAsList[i][:fileAsList[i].find("\n")]) 
    #Creates the dir if it does not exist already 
    if not os.path.isdir(os.path.dirname(fileLocation)): 
     os.makedirs(os.path.dirname(fileLocation)) 
    fileGroup = open(fileLocation, "w+")  
    #writes group members to the open file 
    group = find_group(fileAsList[i][:fileAsList[i].find("\n")]) 
    print group.member 
    for group_member in group.member: #this is line 44 
     fileGroup.write(group_member.cn + "\n") 
    fileGroup.close() 
    i+=1 
+0

Lütfen "active_directory" (http://timgolden.me.uk/python/active_directory.html) modülünün bir parçası olan 'find_group' – th3an0maly

+0

tanımını veriniz. AD içinde bir grup için() –

+0

@ th3an0maly'de verilen isme göre arama yapar. "Bu satır 44" etiketli satır ile ilgili olduğunu veya active_directory modülünün nasıl çalıştığını gerçekten düşünürüm –

cevap

0

Yasal Uyarı: Ben piton bilmiyorum ama oldukça iyi Active Directory biliyorum.

o bu konuda başarısız geçtiyse: Bu muhtemelen grubun hiç üyesi yok anlamına gelebilir

for group_member in group.member: 

.

Phython'un bunu nasıl işlediğine bağlı olarak, grubun yalnızca bir üyesi olduğu ve group.member dizisinin bir diziden ziyade düz bir dize olduğu anlamına da gelebilir.

print group.member ne gösterir?

active_directory.py kaynak kodu burada: https://github.com/tjguk/active_directory/blob/master/active_directory.py

Bu alakalı satırlar şunlardır:

if name not in self._delegate_map: 
     try: 
      attr = getattr(self.com_object, name) 
     except AttributeError: 
      try: 
       attr = self.com_object.Get(name) 
      except: 
       raise AttributeError 

yüzden sadece yukarı aradığınız özelliği bulamıyor Öyle görünüyor, Bu durumda 'üye' özniteliğine benziyor.

+0

Baskı tarafından döndürülen son şey group.member, son grubun üyeleri tarafından kırılmadan önce yaptığı AD yoludur. İşlem yapması gereken bir sonraki grubu bilmeme rağmen, bu yüzden hiçbir üye yoktur. AD modülüne bakıldığında, Öznitelik Hatası döndürdüğü kod bölümü gibi görünüyor, nesnenin özelliklerini almaya çalışıyor. –

+0

Active_directory.py için kaynak kodunu yanıtıma ekledim. –

+0

Daha fazla test ile, sadece boş grup olan% 100 doğru olduğunuzu ve tek sorun grubunun olduğunu göreceksiniz. Şimdi bu kodu yürütmeye çalışmadan önce grubun boş olup olmadığını kontrol etmek için python'u nasıl kullanacağınızı anlamaya çalışın. Belirli bir AD olup olmadığını biliyor musunuz? –

İlgili konular