Problem mit Python ADSI


MR_SCHORLE

Mitglied
Hello wenn ich mein Script ausführe erhalte ich folgende Fehlermeldung:

Code:
IDLE 2.6      ==== No Subprocess ====
>>> 
Traceback (most recent call last):
  File "C:\Dokumente und Einstellungen\Administrator.IDEALTEC\Desktop\erstelscript.py", line 35, in <module>
    ou=adsi.GetObject ("", "LDAP://ou=+row[0], dc=idealtec, dc=org")
  File "<COMObject ADsNamespaces>", line 2, in GetObject
com_error: (-2147352567, 'Ausnahmefehler aufgetreten.', (0, None, None, None, 0, -2147016654), None)
>>>

Habt ihr ne Idee

Anbei mein Script!

Viele Grüße

Code:
import _mysql
import win32com
import os
import win32com.client

from win32com.client import Dispatch
	
adsi=Dispatch ("ADsNamespaces")
ou=adsi.GetObject ("","LDAP://dc=idealtec,dc=org")
adou=ou.Create ("OrganizationalUnit", "ou=Abteilungen")


connection=_mysql.connect (host="localhost", user="root", passwd="", db="idealtec")

connection.query ("""select ou_group_name from ou""")
ergebnis_ou_gp=connection.store_result ()

for row in ergebnis_ou_gp.fetch_row (how=0, maxrows=0):
	adsi=Dispatch ("ADsNamespaces")
	ou=adsi.GetObject ("","LDAP://dc=idealtec,dc=org")
	adou=ou.Create ("OrganizationalUnit", "ou="+row[0])

for row in ergebnis_ou_gp.fetch_row (how=0, maxrows=0):	
	adsi=Dispatch ("ADsNamespaces")
	ou=adsi.GetObject ("", "LDAP://ou=+row[0], dc=idealtec, dc=org")
	adGroup=ou.Create ("Group", "cn="+row[0])



connection.query ("""select ou_group_name, username, givenname, secondname, description from user, ou where ou.ou_id=user.ou_id""")
ergebnis_user=connection.store_result ()

for row in ergebnis_user.fetch_row (how=0, maxrows=0):		
	adsi=Dispatch ("ADsNamespaces")
	ou=adsi.GetObject ("", "LDAP://ou=+row[0], dc=idealtec, dc=org")
	aduser=ou.Create ("User", "cn="+row[0])
	aduser.put ("sAMAccountName", ""+row[1])
	aduser.put ("givenname", ""+row[2])
	aduser.put ("sn", ""+row[3])
	aduser.put ("userPrincipialName", ""+row[1])
	aduser.put ("profilePath", "\\supra-dc1\profiles\%username%")
	aduser.put ("HomeDrive", "h:")
	aduser.put ("HomeDirectory", "\\supra-dc1\home\%username%")
	aduser.put ("scriptPath", "logon.vbs")


	aduser.AccoutDisabled="false"


	user=adsi.GetObject ("" "LDAP://cn=+row[1], ou=+row[0], dc=idealtec, dc=org")
	aduser.Put ("pwdLastSet", 0)
	aduser.PasswordRequired="false"
	user.SetPassword ("changeme")


	group=adsi.GetObject ("", "LDAP://cn=+row[0], dc=idealtec, dc=org")
	group.add ("LDAP://cn=+row[1], ou=+row[0], dc=idealtec, dc=org")



connection.query ("""select ou_group_name, pc_name from ou, pc where ou.ou_id=pc.ou_id""")
ergebnis_ou_gp=connection.store_result ()


for row in ergebnis_ou_gp.fetch_row (how=0, maxrows=0):	
	adsi=Dispatch ("ADsNamespaces")
	ou=adsi.GetObject ("", "LDAP://ou=+row[0], dc=idealtec, dc=org")
	adComputer=ou.Create ("Computer", "cn="+row[0])
	adComputer.put ("ComputerName", ""+row[1])


connection.close()





network=win32com.client.despatch ("Wscript.Network")
os.chdir ("C:/")
if not os.path.exists ("home"):
	os.mkdir ("home")

if not os.path.exists ("profiles"):
	os.mkdir ("profiles")
os.system ("xcacls \"c:profiles\" /T  /G Administrator:F  Raum-1:E Raum-2:E Geschaeftsfuehrung:C Schulung:C EDV:C Verwaltung:C/Y ")



if not os.path.exists ("lesen"):
	os.mkdir ("lesen")

os.system ("xcacls \"c:lesen\" /T /G Administrator:F  Jeder:E /Y ")



if not os.path.exists ("geschaeftsfuehrung"):
	os.mkdir ("geschaeftsfuehrung")

os.system ("xcacls \"c:geschaeftsfuehrung\" /T /D Raum-1 Raum-2 Schulung EDV Verwaltung/G Administrator:F Geschaeftsfuehrung:C /Y ")




if not os.path.exists ("schulungen"):
	os.mkdir ("schulungen")

os.system ("xcacls \"c:schulungen\" /T /D EDV Verwaltung Raum-1 Raum-2 /G Administrator:F Geschaeftsfuehrung:E Schulung:C /Y ")


if not os.path.exists ("schulung"):
	os.mkdir ("schulungen")

os.system ("xcacls \"c:schulungen\" /T /D EDV Verwaltung Raum-1 Raum-2 /G Administrator:F Geschaeftsfuehrung:E Schulung:C /Y ")




if not os.path.exists ("edv"):
	os.mkdir ("edv")

os.system ("xcacls \"c:edv\" /T /D Schulung Verwlatung Raum-1 Raum-2 /G Administrator:F Geschaeftsfuehrung:E EDV:C /Y ")



if not os.path.exists ("verwaltung"):
	os.mkdir ("verwaltung")

os.system ("xcacls \"c:verwaltung\" /T /D Schulung EDV Raum-1 Raum-2 /G Administrator:F Geschaeftsfuehrung:E Verwaltung:C /Y ")




if not os.path.exists ("raum-1"):
	os.mkdir ("raum-1")

os.system ("xcacls \"c:raum-1\" /T /D Mitarbeiter Raum-2 /G Administrator:F Geschaeftsfuehrung:E Raum-1:C Schulung:C /Y ")



if not os.path.exists ("raum-2"):
	os.mkdir ("raum-2")

os.system ("xcacls \"c:raum-1\" /T /D Mitarbeiter Raum-1 /G Administrator:F Geschaeftsfuehrung:E Raum-2:C Schulung:C /Y ")
 

deepthroat

Erfahrenes Mitglied
Hi.

Statt
Python:
ou=adsi.GetObject ("", "LDAP://ou=+row[0], dc=idealtec, dc=org")
meintest du wohl soetwas wie
Python:
ou=adsi.GetObject ("", "LDAP://ou=" + row[0] + ", dc=idealtec, dc=org")
Gruß